
上QQ阅读APP看书,第一时间看更新
1.2.4 多态
多态是指两个或多个属于不同类的对象,对于同一个消息或方法调用所做出响应的能力。面向对象设计也借鉴了客观世界的多态性,体现在不同的对象可以根据相同的消息产生各自不同的动作。例如,在“图形”基类中定义了“绘图”这个行为,但并不指定这个行为在执行时画出什么样的图形。派生类“椭圆”和“矩形”都继承了图形类的绘图行为,但其功能却不同:一个是要画出一个椭圆,另一个是要画出一个矩形。这样一个画图的消息发出以后,椭圆类和矩形类的对象根据接收到这条消息后各自执行不同的画图行为。如图1-3所示,就是多态性的表现。

图1-3 图形多态性示例
具体到面向对象的程序设计而言,多态性(Polymorphism)是指在两个或多个属于不同类中具有相同的函数名对应多个具有相似功能的不同函数,有点拗口,换句话说,就是可以使用相同的调用方式来调用这些具有不同功能的同名函数。
继承性和多态性的结合,可以生成一系列虽然类似但却独一无二的对象。由于继承性,这些对象共享许多相似的特征;由于多态性,针对相同的消息,不同对象可以有独特的表现方式,实现个性化的设计。
上述面向对象技术的几个特征,为提高软件的开发效率起着非常重要的作用,通过编写可重用的、可维护的、可修改的、可共享的代码等的方式,可以充分发挥面向对象技术的优势。