2017-02-19 83 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这么多时间让别人看不到我是的我没有这么做善于给予理解,但这是我所需要的,谢谢:) –