舉例如下
class Demo { public void DoSomething() { System.Console.WriteLine("There is no spoon."); } } class Demo2 : Demo { public new void DoSomething() { System.Console.WriteLine("Free your mind."); } } class DemoTest { static void Main() { Demo2 d = new Demo2(); d.DoSomething(); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:class14.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */
Demo2 改寫了 Demo 的 DoSomething()
public new void DoSomething() { System.Console.WriteLine("Free your mind."); }
編譯執行,結果如下
如果子類別除了改寫外,還需要先執行父類別定義的部份,可用關鍵字 base 先呼叫父類別的方法,例如
class Demo { public void DoSomething() { System.Console.WriteLine("There is no spoon."); } } class Demo2 : Demo { public new void DoSomething() { base.DoSomething(); System.Console.WriteLine("Free your mind."); } } class DemoTest { static void Main() { Demo2 d = new Demo2(); d.DoSomething(); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:class15.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */
通常 base 會放在改寫方法的第 1 行
public new void DoSomething() { base.DoSomething(); System.Console.WriteLine("Free your mind."); }
編譯執行,結果如下
中英文術語對照 | |
---|---|
子類別 | subclass |
父類別 | superclass |
方法 | method |
關鍵字 | keyword |
您可以繼續參考
類別
相關目錄
回 C# 快速導覽
回 C# 教材
回首頁
參考資料
Standard ECMA-334 C# Language Specification
msdn: 繼承 (C# 程式設計手冊)
msdn: new 修飾詞 (C# 參考)
沒有留言:
張貼留言