多态的条件与向上转型 — 程序设计选择题
题目
已知类 Vehicle 中定义了方法 run(),类 ElectricCar 继承 Vehicle 并重写了 run(),同时 ElectricCar 新增了特有方法 charge()。执行如下代码:
Vehicle v = new ElectricCar();
v.run();
v.charge();
下列说法正确的是:
A. v.run() 输出 ElectricCar 重写后的版本,v.charge() 编译出错
B. 两行代码均正常运行,输出 ElectricCar 的行为
C. v.run() 编译出错,因为 v 是 Vehicle 类型引用
D. v.charge() 正常运行,因为对象实际是 ElectricCar 类型