为什么图中((Boat)v).move();这行代码执行的函数输出的语句和上面输出的语句是一样的,类型转换没起作用?代码写得没问题
public abstract class Vehicle {
protected int price;
abstract void move();
public Vehicle(int price) {
this.price = price;
}
}
public class Boat extends Vehicle {
public Boat(int price) {
super(price);
}
@Override
void move() {
System.out.println("Boat moved");
}
}
public class Ship extends Boat {
public Ship(int price) {
super(price);
}
@Override
void move() {
System.out.println("Ship moved");
}
}