单选题 根据如图1-7所示的UML类图可知,类Car和类Boat中的move()方法______。
[*]

【正确答案】 B
【答案解析】[解析] 在UML类图中,“[*]”表示其相联的两个类之间存在泛化关系,即在图1-7中显示了一个继承结构:类Transport为基类,其子类分别为类Car和类Boat。同是注意到,在图1-7中的类Transport的名字之下有一个标识<>。该标识用于说明该类是一个抽象类,类中的方法move()必须在子类中重新定义的纯虚拟函数。由图1-7中可以看出,在两个子类中都定义了函数原型完全相同的move()方法。
在面向对象程序设计中,使用动态多态一一重置(overriding)时需满足3个条件:①类之间具有继承关系、②基类中至少定义一个纯虚拟函数、③在子类中重新定义这个纯虚拟函数。因此,图1-7给出的UML类图结构满足了重置的3个条件,说明子类Car和子类Boat中的move()方法重置了基类Transport的move()方法。