舉例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | class Demo { private int a; private int b; public Demo() { a = 11; b = 22; } public string DoSomething() { return "There is no spoon." ; } public int DoSomething2() { return a + b; } } class Demo2 : Demo {} class DemoTest { static void Main() { Demo2 d = new Demo2(); System.Console.WriteLine(d.DoSomething()); System.Console.WriteLine(d.DoSomething2()); } } /* 《程式語言教學誌》的範例程式 檔名:class12.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
繼承的寫是在子類別後加上冒號,然後是父類別的名稱
19 | class Demo2 : Demo {} |
此例的子類別沒有另外設定屬性及方法,注意父類別 Demo 的屬性 a 及 b 都是 private ,這裡是用 public 的方法存取 private 屬性,這是物件導向程式設計的封裝技巧喔!
編譯執行,結果如下

下例示範子類別另訂方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | class Demo { protected int a; protected int b; public Demo() { a = 11; b = 22; } } class Demo2 : Demo { private int c; public Demo2() { c = 33; } public int DoSomething() { return a + b + c; } } class DemoTest { static void Main() { Demo2 d = new Demo2(); System.Console.WriteLine(d.DoSomething()); } } /* 《程式語言教學誌》的範例程式 檔名:class13.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
此例我們在子類別 Demo2 的 DoSomething 使用了父類別的屬性 a 與 b
18 19 20 | public int DoSomething() { return a + b + c; } |
這裡須注意由於 private 成員無法被繼承,因此 Demo 的 a 與 b 已改成 protected
2 3 | protected int a; protected int b; |
至於子類別的建構子 (constructor) 會先執行父類別的建構子,因此這裡我們只有設定 Demo2 的屬性 c
14 15 16 | public Demo2() { c = 33; } |
編譯執行,結果如下

中英文術語對照 | |
---|---|
繼承 | inheritance |
類別 | class |
子類別 | subclass |
父類別 | superclass |
屬性 | property |
方法 | method |
建構子 | constructor |
您可以繼續參考
類別
相關目錄
回 C# 快速導覽
回 C# 教材
回首頁
參考資料
Standard ECMA-334 C# Language Specification
msdn: 繼承 (C# 程式設計手冊)
2 則留言:
繼承的寫是在子類別後加上「分號」,然後是父類別的名稱
應該是 「冒號」~
感謝你的教學分享~
這邊打錯字了,已修改,感謝指正 ^_^
張貼留言