由于继承,子类具有了父类全部非私有的成员(字段、方法、属性),但是子类也可以对基类的方法进行重写。这种方法就叫做覆盖(override),具体的做法如下,
首先基类的方法用virtual关键字虚函数,告诉编译器允许子类覆盖:
Type BaseClass =class
Funciton F();virtual;
Begin
//…
End;
End
接下来,在子类中将将要覆盖的方法用override关键字标记为覆盖了基类的方法。它的参数的顺序(若有的话)必须和基类相同。
Type SubClass =class(BaseClass)
Funciton F();override;
Begin
//…
End;
End
这样子类的方法F就覆盖了基类的方法F,当SubClass的实例调用F方法是,会执行子类中重新定义的方法。