在delphi中, reintroduce作用

在delphi中, reintroduce作用

当在子类中重载或者重新声明父类的虚方法时,使用 reintroduce 关键字告知编译器,可以消除警告信息.如:

TParent = class

procedure proc;virtual;

end;

TChild = class(TParent)

procedure proc; reintroduce; overload; //重载

//procedure proc; reintroduce; //重新声明

end;

如果此时没有reintroduce关键字,则会出现如下的警告信息:

[Warning] Unit1.pas(20): Method 'proc' hides virtual method of base type 'TParent'

典型的应用是,你要改变CREATE的参数,那么重新声明的CREATE跟父类的不一样,所以要REINTRODUCE,实际的函数可能是这个样子:

Constructor Create(AOwner: TComponent; NewParam: Integer);

begin

Create(AOwner);

... //do something for NewParam