[C#, CSharp] 抽象類別(Abstract Class)
抽象類別
- 抽象成員:只宣告,而沒有實作的成員,抽象類別的子類別必需實作所有的抽象成員
- 抽象類別:指明類別不完整(含抽象成員),只能做為基底類別,被其它類別繼承 抽象類別不能密封
- 只有抽象類別可以包含抽象成員
- 抽象類別中具實作的成員稱為類別成員
- 抽象類別中可以含類別成員,也可以含抽象成員
- 抽象類別不可以被實體化
- C#中使用abstract關鍵字來宣告抽象類別或抽象成員
-
abstract class 抽象類別 { public string 欄位; public string 方法( ) { System.Console.WriteLine("方法"); } public abstract void 抽象方法( ); } class 類別 : 抽象類別 { public override void 抽象方法( ) { System.Console.WriteLine("抽象方法"); } } class 類別1 { public void run() { 類別 物件1 = new 類別(); // O 合法 物件1.抽象方法(); 抽象類別 物件2 = new 類別(); // O 合法 物件2.抽象方法(); 抽象類別 物件3 = new 抽象類別(); // X 不合法 } }
-
- 繼承抽象類別的類別,需實作抽象類別及其父類別的所有抽象成員,包含繼承來的抽象成員
-
abstract class 抽象類別A { public abstract string 抽象方法A( ); } abstract class 抽象類別B : 抽象類別A { public abstract string 抽象方法A( ); } class 類別 : 抽象類別B { public override void 抽象方法A( ) { System.Console.WriteLine("抽象方法A"); } public override void 抽象方法B( ) { System.Console.WriteLine("抽象方法B"); } }
-