抽象類別(Abstract Class):
- 使用 abstract 關鍵字宣告,代表不完整的概念模型,無法直接透過 new 實例化。
- 可以同時包含「抽象成員(只有簽章沒有主體)」與「具體成員(有完整實作內容)」。
- 子類別若非抽象類別,就必須使用 override 實作父類別中所有標記為 abstract 的成員。
密封類別(Sealed Class,俗稱「蜜蜂類別 / 斷子絕孫類別」):
- 使用 sealed 關鍵字宣告,作用是禁止其他類別繼承它(防止擴充)。
- 亦可用於方法上(搭配 override sealed),防止該方法在後續子類別中被再次覆寫。
- 常見用途:系統安全性設定、效能優化(編譯器可做去虛擬化優化)、設計核心不可變類別(如 C# 內建的 string 即為 sealed class)。
介面(Interface):
- 使用 interface 關鍵字宣告,約定名稱通常以大寫 I 開頭(例如 IDriveable、IDisposable)。
- 本質是一種「行為契約(Contract)」,只規範「要做什麼」,不干涉「怎麼做」。
- 介面成員預設存取層級為 public,且實作的類別必須提供所有成員的實體內容。
- 突破單一繼承限制:一個類別只能繼承一個父類別,但可以實作多個介面。
實作範例


