张志峰的博客

水滴石川,积少成多。

导航

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

Posted on 2012-06-01 11:49  ╰★张志峰★╮  阅读(1876)  评论(0编辑  收藏  举报

通过覆盖一个方法可以实现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;