• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

剖析Delphi中的多态

发布: 2008-5-19 10:55 | 作者: 不详 | 来源: 软件研发之窗 | 查看: 118次 | 进入软件测试论坛讨论

领测软件测试网


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/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网