初探Object Pascal的类(九)
继承(Inheritance)
在Object Pascal中,类的最强大功能之一就是可以通过继承得到扩展。
继承(Inheritance)是指取一个现有的类,通过由它派生新类来增加功能。
开始取得类称为基类(base class)或者祖先类(ancestor class),新建立的类称为派生类(derived class)。
为了说明这些概念,我们再次回到TAirplane类。众所周知,在民用和军用领域有很大的区别,为了表示一架军用飞机,可以从TAirplane中派生一个类,并增加一些功能:
TMilitaryPlane = class(TAirplane) { TMilitaryPlane从TAirplane基类继承下来} private TheMission: TMission; function GetStatus(var StatusString: string): Integer; override; { override覆盖基类的GetStatus方法} constructor Create(AName: string; AType: Integer); protected procedure TakeOff(Dir: Integer); override; procedure Land; override; procedure Attack; virtual; { Attack, SetMission为TMilitaryPlane新增方法} procedure SetMission; virtual; end;
TAirplane所有内容,TMilitaryPlane都有,此外它还增加了一些新内容。注意类声明的第1行,关键字class后面括弧里的类名用于指示编译器此类是从另一类派生而来,被派生的类就是基类,在这里,基类是TAirplane类。
Note
当从另一个类派生类时,除了增加了一些新功能外,新类继承了基类的所有功能。可以给新类增加字段和方法,但不能删除基类所提供的任何内容。
在private段中,有一行声明了TMission类实例,在此没有给出声明,但它封装了军用飞机所要处理的每一项军务:瞄准、导航、进出口高度和航向等等。这也说明作为另一个类的实例字段的用法,实际上,在Delphi中具体编程时,会看到很多。
以上代码在Delphi7中测试通过,示例代码下载:继承(TMilitaryPlane).rar
posted on 2011-12-30 14:00 pchmonster 阅读(936) 评论(0) 编辑 收藏 举报