抽象類七大核心規則
- 使用
abstract 關鍵字宣告抽象方法
- 一個類別可包含多個抽象方法
- 抽象類別可同時包含非抽象(具體實作)方法
- 抽象類別無法直接實例化(
new AbstractClass() 編譯錯誤)
- 繼承抽象類別用
:,實作抽象方法用 override
- 抽象類別可被另一個抽象類別繼承,結果仍為抽象類別
- 抽象方法實作後,不得更改其存取修飾詞
完整程式碼範例
public abstract class Person
{
public abstract void SayHello(); // 抽象方法:強制子類實作
public void About() // 具體方法:可直接繼承使用
{
Console.WriteLine("Abstract Demo");
}
}
public class Student : Person
{
public override void SayHello() // 必須實作抽象方法
{
Console.WriteLine("SayHello");
}
}
class MainClass
{
public static void Main()
{
new Student().SayHello(); // 多型:以基類型別引用子類物件
}
}
設計重點
- 契約定義:抽象方法定義「必須做什麼」,具體方法提供「預設怎麼做」
- 多型基礎:抽象類別是介面與實作之間的橋樑,支援「面向介面程式設計」
- 不可實例化:強制使用者建立具體子類,確保業務邏輯完整性