首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 類別繼承入門:從 VCL 表單到自訂類別的父子關係實作

     編輯:Delphi

繼承無處不在:VCL 表單就是最佳範例

每個 Delphi 專案預設產生的表單,本質就是繼承:


TForm1 = class(TForm) // TForm1 繼承 TForm
  Button1: TButton;
  Button2: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
end;
  • TForm 是父類別(基底類別)
  • TForm1 是子類別(衍生類別)
  • 子類別自動擁有父類別所有非私有成員

自訂類別繼承實戰

定義父類別與子類別


TBass = class
  procedure Msg1;
end;

TChild = class(TBass) // 繼承 TBass
  procedure Msg2;
end;

方法實作


procedure TBass.Msg1;
begin
  ShowMessage('is Bass');
end;

procedure TChild.Msg2;
begin
  ShowMessage('is Child');
end;

繼承效果驗證

測試 1:父類別實例僅有父類別方法


var B: TBass;
begin
  B := TBass.Create;
  B.Msg1; // 正常
  // B.Msg2; // 編譯錯誤:父類別沒有 Msg2
  B.Free;
end;

測試 2:子類別實例擁有父類別 + 自己的方法


var C: TChild;
begin
  C := TChild.Create;
  C.Msg1; // 繼承自父類別,輸出: is Bass
  C.Msg2; // 自己的方法,輸出: is Child
  C.Free;
end;

繼承核心概念總結

  • 單一繼承:Delphi 類別只能繼承一個直接父類別。
  • 成員繼承:public/protected/published 成員會被繼承;private 不會(但同單元可見)。
  • 建構子/解構子:子類別未覆寫時,呼叫父類別對應方法。
  • is / as 運算子:執行期型別檢查與安全轉型。

總結

繼承是程式碼重複使用的基石。從 VCL 表單到自訂類別,掌握「父類別定義共用行為,子類別擴充或修改」的設計模式,能建構清晰的類別階層。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved