有人可以解释这里发生了什么吗?带超类的java铸造参考
假设Car
和Bike
是Vehicle
的子类。
它在我看来像Vehicle v
引用投到Bike
。我知道这是非法的,事实上编译器吐出... Car cannot be cast to Bike
。
但是不应该这样做Vehicle
不能转换为Bike
?毕竟,Vehicle v
是Vehicle
参考。
public class Test {
public static void main(String[] args) {
Vehicle v = new Car();
Bike b = (Bike) v;
// some stuff
}
}
因为JVM在抛出异常时知道它是Car。 –
编译器不分割异常。该代码抛出**运行时**'ClassCastException'。 –
@怀孕妈妈,如果您对其中的任何人都满意,请接受答案。 – Reddy