Employee[ENum]:=TCppProgramer.create;
//创建一个TcppProgramer对象,并把基类引用employee[ENum]指向它
Employee[eNum+1]:=TDelphiProgramer.Create;
…
{员工们.开始上班}
for i:=0 to Length(Employee)-1 do
Employee[i].startWorking; //还是同一的调用方法(因为接口并没变)。
…
1.3多态在delphi中如何实现的?
实现多态的必要条件是继承,虚方法,动态绑定(或滞后联编),在Delphi是怎么实现多态的呢?
1.3.1 继承(Inheritance)
继承指类和类之间的“AKO(A Kind Of,是一种)”关系,如程序员“是一种”员工表示一种继承关系。在Delphi中,只支持单继承(不考虑由接口实现的多重继承),这样虽然没有多继承的那种灵活性,但给我们带来了极大的好处,由此我们可以在任意出现基类对象的地方都可以用派生类对象来代替(反之不然),这也就是所谓的“多态置换原则”,我们就可以把派生类的对象的地址赋给基类的指针/引用,为实现多态提供了先决条件。
提 示
在UML中:
AKO: A Kind Of 表示继承(Inheritance)关系
APO: A Part Of 表示组合(Composition)关系
IsA: Is A表示对象和所属类的关系
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/