当在子类中重载或者重新声明父类的虚方法时,使用 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