红鱼儿

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

 

posted on 2019-02-14 08:00  红鱼儿  阅读(1097)  评论(0编辑  收藏  举报