delphi 方法的覆盖和隐藏和重载

通过覆盖一个方法可以实现OOP的多态性的概念。通过覆盖方法可以在不同的实现类中有不同的行为。Delphi中能够被覆盖的方法限定为Virtual和Dynamic的方法。为了覆盖一个方法,在派生类中用Override代替上面的标识符。

注意:在声明方法的时候,如果派生类中的方法名没有带Override,但是名称和父类的相同。这个时候派生类中方法和父类中的这个方法都同时存在,没有覆盖父类的方法。

例子如下:

Type

    T1 = class

     procedure AB; Virtual;

end;

T2 = class(T1)

     procedure AB;

end;

Var

  Some1: T1;

  Some2: T2;

begin

  Some1 := T2.Create;

  Some1.AB;  调用的是父类T1的方法。

 Some2 := T2.Create;

  Some1.AB;  调用的是子类T23的方法。

end;

原文地址:https://www.cnblogs.com/zhangzhifeng/p/2530477.html