理解 Delphi 的类(十一) - 深入类中的方法[2] - 关于覆盖与重定义 - 万一...

来源:百度文库 编辑:神马文学网 时间:2024/04/30 08:30:36

理解 Delphi 的类(十一) - 深入类中的方法[2] - 关于覆盖与重定义

//标准的覆盖是这样的TBass = classprocedure Proc; virtual; {或用 dynamic}end;TChild = class(TBass)procedure Proc; override;end;
//以下几种情况属于重定义, 其中例 3-5 还会有编译提示{例1}TBass = classprocedure Proc;end;TChild = class(TBass)procedure Proc;end;{例2}TBass = classprocedure Proc;end;TChild = class(TBass)procedure Proc; virtual;end;{例3}TBass = classprocedure Proc; virtual;end;TChild = class(TBass)procedure Proc; virtual;end;{例4}TBass = classprocedure Proc; virtual;end;TChild = class(TBass)procedure Proc;end;{例5}TBass = classprocedure Proc; virtual;end;TChild = class(TBass)procedure Proc; dynamic;end;{上面这五种情况我们尽量不要使用}
//方法重定义时, 避免编译提示的办法{办法1: 使用 reintroduce 指示字}TBass = classprocedure Proc; virtual;end;TChild = class(TBass)procedure Proc; reintroduce;end;{办法2: 使用编译器指令}TBass = classprocedure Proc; virtual;end;{$WARNINGS OFF}TChild = class(TBass)procedure Proc; virtual;end;{$WARNINGS ON}