我有兩個亞類從一個超類陣列的兩個不同的亞類
public class A {
}
public class B extends A{
int weight;
}
public class C extends A{
int height;
}
現在,我需要有一個陣列命名myArray的一些細胞是從類B和其他是從類C.
A[10] myArray;
myArray[2]=new B();
myArray[3]=new C();
myArray[2].weight=40;
myArray[3].height=60;
怎麼可能?我的方式是否正確?
它編譯? – smac89
'A'沒有名爲'weight'或'height'的成員,所以他們不能設置。編譯器知道的關於'myArray'的唯一事情就是其中的所有內容都擴展了'A'。而已。你可以這樣做:'((B)myArray [2]).weight = 40',因爲編譯器可以在運行時確定'myArray [2]'也是'B',但是必須是cast。 – Tibrogargan
如果你投B和C到A它應該工作。 – redxef