Delphi 類別定義以 class 關鍵字開始,預設繼承自 TObject。若明確繼承 TObject 可省略:
// 標準語法
TMyClass1 = class(TObject)
end;
// 等同於(省略 TObject)
TMyClass2 = class
end;
支援多介面實作,常搭配 TInterfacedObject 取得介面預設實作(參考計數、生命週期管理):
TMyClass3 = class(TInterfacedObject, IInterface1, IInterface2)
end;
使用分號結尾可建立類別別名;class of 宣告類別引用,用於建構元件、工廠模式等情境:
// 類別別名
TMyClass4 = class(TObject);
// 類別引用
TMyClass = class of TObject;
virtual; abstract 方法才真正成為抽象類別。sealed 或 Java 的 final。// 抽象類別
TMyClass5 = class abstract(TObject)
procedure Proc; virtual; abstract;
end;
// 密封類別
TMyClass6 = class sealed(TObject)
// ...
end;
雖非強制,但遵循慣例可提升可讀性:
published)privateprotectedpublicpublished掌握 Delphi 類別定義的各種變體——繼承、介面實作、抽象、密封、類別引用——是撰寫靈活、可擴充物件模型的基石。遵循成員排列與存取權限慣例,能讓團隊協作更順暢。