有人可以解釋這裏發生了什麼嗎?帶超類的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