unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;//夫類 TParent = class protected function MyFun(i: Integer): Integer; dynamic; //動態方法 procedure MyProc; virtual; //虛方法 end;//子類 TChild = class(TParent) protected function MyFun(i: Integer): Integer; override; //覆蓋 procedure MyProc; override; //覆蓋 end;var Form1: TForm1;implementation{$R *.dfm}{ TParent }function TParent.MyFun(i: Integer): Integer;begin Inc(i); Result := i;end;procedure TParent.MyProc;begin ShowMessage('Parent');end;{ TChild }function TChild.MyFun(i: Integer): Integer;begin i := inherited MyFun(i); //先調用夫類方法,被 +1;當然可以不調用 Inc(i); //子類再 +1 Result := i;end;procedure TChild.MyProc;begin inherited; //先調用夫類方法;當然可以不調用 ShowMessage('Child');end;//測試procedure TForm1.FormCreate(Sender: TObject);var p: TParent; c: TChild;begin p := TParent.Create; c := TChild.Create; p.MyProc; //Parent c.MyProc; //Parent; TChild ShowMessage(IntToStr(p.MyFun(2))); //3 ShowMessage(IntToStr(c.MyFun(2))); //4 p.Free; c.Free;end;end.