OOP 基础知识:多态性

多态性是指可变性或多样性。多态性是抽象(结合了继承机制)的逆过程。当我们拥有一个通用的编程接口时,它可以由通过继承关系链接的不同类来实现。然后,调用接口方法将导致任务以不同的方式执行。

例如,想象一个抽象交通工具类族,其中包含两种特定类型:汽车和直升机。两者都能出色完成从点 A 移动到点 B 的命令,但汽车是在地面上行驶,而直升机则在空中飞行。

我们继续以绘图程序为例。我们可以说,其中的多样性体现在图形形状的层面上。用户可以自由绘制圆形、正方形和三角形的任意组合。这些对象中的每一个都必须能够使用其自身的坐标和样式在屏幕上显示,但最重要的是以一种能够产生合适形状的方式进行。

程序很可能会有一个数组(或其他容器)来存储用户创建的所有形状,而将整个绘图显示在屏幕上应该包含按顺序绘制每个形状的过程。如果我们将形状的绘制指令精简为一个单独的方法(我们称之为 draw),那么每个类都会有自己的实现。然而,这些函数的头文件将完全相同,因为它们执行相同的任务,并从对象中获取初始数据。

因此,我们有机会统一源代码,因为在形状循环中对 draw 方法的相同调用表现出多态性:所显示的形状将取决于对象的类型。