第5章 多态性课程.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
养猪场v4.0图示 面向对象养猪场 养猪场v3.0图示 +工作() 喂猪机器人 +吃() 大白猪 +吃() 长白猪 工作 { 对每一只猪 { 猪--〉吃 } } +吃() 猪 1 * 养猪场V4.0 案例总结 养猪场V4.0版系统中,喂猪机器人完全是针对公共基类接口进行编程的; 当系统添加一个新的类型时,只需要添加新类型的代码,而系统中原有的代码不需要做任何的改变就可以适应新的需求—这完全符合开闭原则。 那用代码,我们怎么实现呢? ---虚函数 #include iostream.h class pig { public: virtual void eat(){}; }; class BigWhitePig:public pig { public: void eat(){coutBigWhitePig,eat!\n;} }; class LongWhitePig:public pig { public: void eat(){coutLongWhitePig,eat!\n;} }; class BoZhongPig:public pig { public: void eat(){coutBoZhongPig,eat!\n;}; }; class Robot { public: void work(pig *objPig){objPig-eat();}; }; void main() { pig *ptr; BigWhitePig bigWhitePig; LongWhitePig longWhitePig; BoZhongPig boZhongpig; Robot robot; ptr=bigWhitePig; robot.work(ptr); ptr=longWhitePig; robot.work(ptr); ptr=boZhongpig; robot.work(ptr); } 程序运行结果 多态性是面向对象程序设计语言的又一重要特征,它是指不同对象接收到同一消息时会产生不同的行为。继承所处理的是类与类之间的层次关系问题,而多态则是处理类的层次结构之间,以及同一个类内部同名函数的关系问题。简单地说,多态就是在同一个类或继承体系结构的基类与派生类中,用同名函数来实现各种不同的功能。 * main.cpp Shape *arrayOfShapes[ 3 ]; arrayOfShapes[ 0 ] = point; arrayOfShapes[ 1 ] = circle; arrayOfShapes[ 2 ] = cylinder; cout Virtual function calls made off base-class pointers\n; for ( int i = 0; i 3; i++ ) virtualViaPointer( arrayOfShapes[ i ] ); cout Virtual function calls made off base-class references\n; for ( int j = 0; j 3; j++ ) virtualViaReference( *arrayOfShapes[ j ] ); return 0; } Point: [7, 11] Circle: [22, 8]; Radius = 3.50 Cylinder: [10, 10]; Radius = 3.30; Height = 10.00 Virtual function calls made off base-class pointers Point: [7, 11] Area = 0.00 Volume = 0.00 Circle: [22, 8]; Radius = 3.50 Area = 38.48 Volume

文档评论(0)

hushuidhd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档