2017-02-19 52 views
-5

我有3個類,我想把它們放在一個數組中。該數組的長度爲A,我想在此長度上定義前3個插槽僅從這些類中唯一。長度A由鍵盤給出。我只發佈我遇到的代碼。此代碼位於我的主要和它的錯誤。立體聲,Ygro,Aerio亞型食物。繼承類到數組

Food[] pin = new Food[A]; // this the array that include all classes Stereo,Ygro,Aerio 
for (int i = 0; i < 3; i++) { 
    pin[i] = new Stereo(); //this is a class start i=0 
    pin[i+1] = new Ygro(); // this is a class 
    pin[i+2] = new Aerio(); // this is a class 
} 
+1

亞型*我想限定在此長度,所述前三個插槽只有這些類纔是唯一的。*什麼? – shmosel

+1

'pin'的元素是'int'類型。你不能給它的元素賦一個'Stereo',只能寫'int s = new Stereo();'。 –

+0

Pin是一個int數組,因此您無法在其中放入對象。 –

回答

0

您需要將數組作爲要存儲的超類的數組。 像這樣:

SuperClass[] pin = new SuperClass[A]; 

然後訪問它們投射到thier類型這樣的元素時:

if (pin[0] instanceof SubClass) { 
    SubClass obj = (SubClass)pin[0]; 
    System.out.println(obj.customField); 
} 

​​是SuperClass

+0

它應該停止時,它是2.我的意思是(我= 0,我= 1,我= 2)。長度是A是繼續還是結束呢? –

+0

@qa你可以用任何一個數字代替0,範圍從0到A-1 – cookie

+0

男人我會讓你成爲一尊雕像,真的非常感謝<3這麼多時間讓別人看不到我是的我沒有這麼做善於給予理解,但這是我所需要的,謝謝:) –