unit Unit1; interface uses 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; virtual; abstract; //抽象方法(纯虚方法),只有定义没有实现,一个类包含一个即成抽象类,抽象类不能直接创建对象。 end; //子类 TChild = class(TParent) protected function MyFun(i: Integer): Integer; override; //覆盖 end; var Form1: TForm1; implementation {$R *.dfm} { TChild } function TChild.MyFun(i: Integer): Integer; begin Inc(i); Result := i; end; //测试 procedure TForm1.FormCreate(Sender: TObject); var p: TParent; c: TChild; begin p := TChild.Create; //抽象类只能通过其子类创建对象 c := TChild.Create; ShowMessage(IntToStr(p.MyFun(2))); //3 ShowMessage(IntToStr(c.MyFun(2))); //3 p.Free; c.Free; end; end.