首页 理论教育 多态性()

多态性()

时间:2022-02-28 理论教育 版权反馈
【摘要】:对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的动作,该现象称为多态性。例如,在两个类Male(男性)和Female(女性)都有一项属性为Friend。一个人的朋友必须属于类Male或Female,这是一个多态性的情况。多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且显著地提高了软件的可重用性和可扩充性。结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用GO TO语句。

1.3.5 多态性(Polymorphism)

对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的动作,该现象称为多态性。在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。

例如,在两个类Male(男性)和Female(女性)都有一项属性为Friend。一个人的朋友必须属于类Male或Female,这是一个多态性的情况。因为,Friend指向两个类之一的实例。如果Tom的朋友或者是Mary或者是john,类Male就不知道Friend应该与哪个类关联。这里参照量Friend必须是多态的,多态意味着可以关联不同的实例,而实例可以属于不同的类。

多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且显著地提高了软件的可重用性和可扩充性。当扩充系统功能增加新的实体类型时,只需派生出与新实体类相应的新的子类,完全无需修改原有的程序代码,甚至不需要重新编译原有的程序。利用多态性,用户能够发送一般形式的消息,而将所有的实现细节都留给接受消息的对象。

【典型例题】

(1)下列选项中不属于结构化程序设计方法的是______。

A.逐步求精  B.自顶向下  C.模块化  D.可复用

参考答案:D。

解析:20世纪70年代以来,提出了许多软件设计方法,主要有(A)逐步求精:对复杂的问题,应设计一些子目标做过渡,逐步细化。(B)自顶向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。(C)模块化:一个复杂问题,肯定是由若干简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。(D)可复用:是面向对象程序设计的一个优点。

(2)结构化程序设计主要强调的是______。

A.程序的规模  B.程序的易读性

C.程序的执行效率  D.程序的可移植性

参考答案:B。

解析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。

(3)对建立良好的程序设计风格,下面描述正确的是______。

A.程序应简单、清晰、可读性好

B.符号名的命名要符合语法

C.充分考虑程序的执行效率

D.程序的注释可有可无

参考答案:A。

解析:要形成良好的程序设计风格,主要应注重和考虑下述一些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。

(4)下面对对象概念描述错误的是______。

A.任何对象都必须有继承性  B.对象是属性和方法的封装体

C.对象间的通信靠消息传递  D.操作是对象的动态性属性

参考答案:A。

解析:对象是由数据和允许的操作组成的封装体,与客观实体有直接的对应关系。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。

(5)在结构化方法中,软件功能分解属于下列软件开发中的______阶段。

A.详细设计  B.需求分析  C.总体设计  D.编程调试

参考答案:C。

解析:总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述,仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。

(6)在设计程序时,应采纳的原则之一是______。

A.程序结构应有助于读者理解  B.不限制GO TO语句的使用

C.减少或取消注解行  D.程序越短越好

参考答案:A。

解析:滥用GO TO语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。

(7)在面向对象方法中,______描述的是具有相似属性与操作的一组对象。

参考答案:类。

解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。

(8)结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用GO TO语句。

参考答案:模块化。

解析:结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化和限制使用GO TO语句。

自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。

逐步求精:对复杂问题,应设计一些子目标做过渡,逐步细化。

模块化:一个复杂问题,肯定是由若干简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。

限制使用GO TO语句:GO TO语句能破坏程序的结构化设计,使代码难于测试,且包含大量GO TO的代码模块不易理解和阅读。它一直遭结构化程序设计思想所抛弃,强烈建议程序员不易使用它。

(9)与结构化需求分析方法相对应的是______方法。

参考答案:结构化设计。

解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可用方法,来设计系统的各个组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法把哪些部分联系起来,才能解决好某个具体且有清楚定义的问题。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈