- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 1.3.7 多态性(Polymorphism) 在面向对象中,多态性使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。 说 明 多态性表示了对象属于多个类的能力。 抽象操作是多态的,抽象操作可以在不同的类中按不同方式执行。 多态性增加了OO的灵活性,减少冗余信息,提高可重用性,可扩展性。 在OO语言中,多态性的实现与下列概念有关: 同样的操作可用于一个类型及其子类型。在子类中,对继承类的属性或服务进行重新定义。 ——动态绑定 (dynamic binding) 程序在运行时,根据对象接受的消息,动态地确定要连到哪一段代码上。程序设计中,运行期决定对象和分配存储能力为动态绑定。 ——参数多态(parametric) 参数多态是指一个可参数化的类模板中包含的操作所涉及的类型必须用类型参数实例化。 * ——包含多态 (inclusion) 多态性显著提高了软件的可重用性和可扩充性。 用户可以发送一个通用的消息,而实现时的细节则由接收对象自行决定,这样同一消息可以调用不同的方法,增加了系统的灵活性 。 经理 Pay() 推销员 Pay() 技工 Pay() 销售部经理 Pay() 雇员 Pay() * 包含多态(inclusion) Shape类 图1-8 画图系统中类的继承关系 各种图形具有共同的属性和操作:颜色、线型、旋转、移动。但在不同图形中对Draw的描绘虽然不同,外界都可以采用以下方式调用: Shape Line Triangle Square Rectangle Draw() Shape *aShape;Line *aLine;aLine = new Line;aShape = oLine;aShape-draw();//调用的是类Line的方法。 为外界调用提供统一的接口,使对图形扩充成为可能。 * * 1.3.8 永久对象(Persistent object) 就是对象的生存期可以超越程序的执行时间而长期存在的对象 1.4 面向对象软件开发特点 1.4.1 面向对象与面向过程方法的区别 1.4.2 面向对象与面向过程分析与设计的区别 1.4.3 面向对象与面向过程程序的区别 * 1.4.1 面向对象与面向过程方法的区别 * (1) 面向过程方法是开发人员按计算机的结构去思考问 题。 (2) 面向过程方法是开发人员在问题空间和解空间进行 对应。 面向对象方法是以对象(事物)代表求解问题的中 心环节,是按解决问题的方式去思考问题。 面向对象的方法,是现实的问题空间与软件系统的 解空间的近似和直接模拟,使人们对复杂系统的认 识过程和程序的实现过程尽可能一致。 * (3) 面向过程方法以函数过程和数据结构为中心建模,用 计算机的术语描述问题。 面向对象的方法是对求解问题本身建模,用问题本 身的术语描述问题。 1.4.1 面向对象与面向过程方法的区别 * 函数和 过程 举例:某所大学信息系统的设计 数据 图1-9 结构化方法 结构化的方法: 将定义数据库的布局和程序的设计来访问这些数据。 数据库中存有关于学生、教授、教室以及课程的信息。 程序可以让用户登记学生的选课情况,分派教授授课,安排授课教室等。程序可以访问并更新数据库。 * 对象 对象 对象 对象 图1-10 面向对象方法 面向对象的方法: 学生、教授、教室和课程等被当成对象来考虑。 定义一组能进行交互的类(类,class是相似对象的一种通用表示)。 这样的类将包括功能(程序) 和数据的抽象。 举例:某所大学信息系统的设计 * 1.4.2 面向对象与面向过程分析与设计的区别 图书馆信息系统 Catalog Librarian Book Library System Record Loans Add Resources Report Fines 图1-11 按对象概念分解 图1-12 按功能或过程分解 面向对象 分析与设计 面向过程的 分析与设计 分而治之 分析和设计的采用一致的概念、原则、表示法 1.4.3 面向对象与面向过程程序的区别 面向对象的程序 = 对象+消息 存 款 取 款 图1-14 面向对象的储蓄处理事务 银行账户对象 数据和施加在其上的操作分离; 代码按过程组织的,每个过程 操作不同类型的数据。 外部消息 利息结算 利息结算 存款 取款 账户 余额 账户 余额 图1-13 面向过程的储蓄处理事务 在面向对象中,是在数据抽象内来组
您可能关注的文档
- 煤矿瓦斯抽采与利用教案分析.ppt
- 煤矿瓦斯煤尘事故防治与应急避灾—教案分析.ppt
- 煤矿瓦斯灾害防治培训[]教案分析.ppt
- 煤矿瓦斯综合治理技术集成体系(陈久福)教案分析.ppt
- 煤矿新工人安全培训(修)教案分析.ppt
- 煤矿新工人安全培训教案分析.ppt
- 煤矿新工人岗前培训之煤矿“一通三防”基础知识教案分析.ppt
- 煤矿新工人入矿培训入矿培训(新工人培训)经典版本教案分析.ppt
- 煤矿应急救援教案分析.ppt
- 六上三电能和能量陈建秋教案分析.ppt
- 英语人教PEP版八年级(上册)Unit4+writing+写作.pptx
- 人美版美术四年级(上册)8 笔的世界 课件 (1).pptx
- 人美版美术七年级(上册)龙的制作.pptx
- 英语人教PEP版六年级(上册)Unit 2 第一课时.pptx
- 数学苏教版三年级(上册)3.3 长方形和正方形周长的计算 苏教版(共12张PPT).pptx
- 音乐人教版八年级(上册)青春舞曲 课件2.pptx
- 音乐人教版四年级(上册) 第一单元 音乐知识 附点四分音符|人教版.pptx
- 英语人教PEP版四年级(上册)Unit 6 Part B let's learn 1.pptx
- 道德与法治人教版二年级(上册)课件-3.11大家排好队部编版(共18张PPT).pptx
- 人美版美术七年级(上册)《黄山天下奇》课件1.pptx
文档评论(0)