请问在父类中怎么调用自己类的虚函数,例如:
TBase = class
procedure fun1; virtual;
procedure default: virtual;
end;TSub = class (TBase)
procedure fun1; override;
end;...procedure TBase.default;
begin
fun1;//这里希望能够一定调用TBase的fun1,而不会因为fun1被滞后联编调到子类的fun1函数去
end;...
var
a: TSub;
a.Default;//这里希望能够一定调用TBase的fun1,而不会因为fun1被滞后联编调到子类的fun1函数去
谢谢!!!!!!!!
TBase = class
procedure fun1; virtual;
procedure default: virtual;
end;TSub = class (TBase)
procedure fun1; override;
end;...procedure TBase.default;
begin
fun1;//这里希望能够一定调用TBase的fun1,而不会因为fun1被滞后联编调到子类的fun1函数去
end;...
var
a: TSub;
a.Default;//这里希望能够一定调用TBase的fun1,而不会因为fun1被滞后联编调到子类的fun1函数去
谢谢!!!!!!!!
procedure Fun1; virtual;
procedure Default; virtual;
end; TSub = class(TBase)
procedure Fun1; override;
procedure Default; override;
end;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TBase }procedure TBase.Default;
begin
fun1; //这里你是申明的TBase 的对象的话,他是不会编连到子类的覆盖方法的
end;procedure TBase.Fun1;
begin
ShowMessage('Base');
end;{ TBase1 }procedure TSub.Default;
begin
inherited;end;procedure TSub.Fun1;
begin
inherited;end;procedure TForm1.Button1Click(Sender: TObject);
var
a: TSub;
begin
a := TSub.Create;
a.Default; //这里的办法就是使子类只是继承就可以了 即:inherited 就可以
a.Free;
end;procedure TForm1.Button2Click(Sender: TObject);
var
a: TBase;
begin
a := TBase.Create;
a.Default;
end;