OverWrite
一、簡介
overwrite覆寫,用new實現。在子類中用 new 關鍵字修飾定義的與父類中同名的方法,也稱為覆蓋,覆蓋不會改變父類方法的功能。
二、代碼
namespace 重寫 { class Parent { public void F() { Console.WriteLine("Parent.F()"); } //重寫的屬性必須是virtual、abstract或override public virtual void G() //虛方法 { Console.WriteLine("Parent.G()"); } } class ChildOne : Parent //子類一繼承父類 { new public void F() //覆寫(overwrite)父類函數 { Console.WriteLine("ChildOne.F()"); } public override void G() //重寫(override)父類虛函數,主要實現多態 { Console.WriteLine("ChildOne.G()"); } } class ChildTwo : Parent //子類二繼承父類 { new public void F() { Console.WriteLine("ChildTwo.F()"); } public override void G() { Console.WriteLine("ChildTwo.G()"); } } class Program { static void Main(string[] args) { Parent childOne = new ChildOne(); Parent childTwo = new ChildTwo(); //調用Parent.F() childOne.F(); childTwo.F(); //實現多態 childOne.G(); childTwo.G(); } } }
三、結果
重寫子類的方法,但是不會覆蓋父類的方法。