问题
单项选择题
根据如图4—2所示的UML类图可知,类Car和类Boat中的move()方法______。
A.引用了类Transport的move()方法
B.重置了类Transport的move()方法
C.是类Transport的move()方法的聚集
D.是类Transport的move()方法的泛化
答案
参考答案:B
解析: 在UML类图中,“
”表示其相连的两个类之间存在泛化关系,即在图4-2中显示了一个继承结构:类Transport为基类,其子类分别为类Car和类Boat。同时注意到,在图4-2中类Transport的名字之下有一个标识“<<abstract>>”。该标识用于说明该类是一个抽象类,类中的方法move()必须在子类中重新定义的纯虚拟函数。由图4—2中可以看出,在两个子类中都定义了与函数原型完全相同的move()方法。
在面向对象程序设计中,使用动态多态—重置(Overriding)时需满足3个条件:①类之间具有继承关系;②基类中至少定义一个纯虚拟函数;③在子类中重新定义这个纯虚拟函数。图4—2给出的UML类图结构满足了重置的3个条件,说明子类car和子类Boat中的move()方法重置了基类Transport的move()方法。