面向对象编程中的多态性深度解析
1. 多态性概述
多态性是面向对象编程中的一个强大概念,它使编程更加便捷,系统更具可扩展性。多态性允许我们“泛型编程”,而非“具体编程”。具体而言,多态性让我们能够编写处理同一类层次结构中各类对象的程序,就好像它们都是该层次结构基类的对象一样。需要注意的是,多态性依赖于基类指针和基类引用,而非对象名。
多态性的一个重要优势在于可扩展性。借助多态性,我们可以设计和实现易于扩展的系统。只要新类属于程序通常处理的继承层次结构,就可以在对程序的通用部分进行很少或不进行修改的情况下添加新类。只有那些需要直接了解新添加到层次结构中的类的程序部分才需要进行修改。
2. 多态性在游戏中的应用示例
假设我们设计一个视频游戏,其中包含多种不同类型的对象,如火星人(Martian)、金星人(Venutian)、冥王星人(Plutonian)、宇宙飞船(SpaceShip)和激光束(LaserBeam)。这些类都继承自一个共同的基类 SpaceObject,该基类包含成员函数 draw。每个派生类都以适合自身的方式实现了这个函数。
屏幕管理程序维护一个容器(如向量),其中包含指向各种类对象的 SpaceObject 指针。为了刷新屏幕,屏幕管理器会定期向每个对象发送相同的消息,即 draw。每种类型的对象都会以独特的方式响应。例如,火星人对象可能会以红色绘制自身,并带有适当数量的触角;宇宙飞船对象可能会将自身绘制为银色的飞碟;激光束对象可能会将自身绘制为屏幕上的一道明亮红色光束。向各种对象发送相同的消息(这里是 draw)会产生多种形式的结果,这就是多态性的体现。
一个多态的屏幕管理器便于向系统添加新类,而只
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



