0
爲什麼不能將o1(C1是C3的超類)轉換爲C3(C1的子類)?爲什麼我在這裏得到一個ClassCastException?
interface I1 { }
interface I2 { }
static class C1 implements I1 { }
static class C2 implements I2 { }
static class C3 extends C1 implements I2 { }
static class C5 extends C1 implements I2 {}
public static void main(String[] args) {
C1 o1 = new C1();
C2 o2 = new C2();
C3 o3 = new C3();
C5 o5 = new C5();
o3 = (C3) o1;
}
因爲O1不包含一些執行/信息O3已經/需要(這是從I2繼承)這個例子,不是嗎? – kosa