我收到一个错误,指出“无法找到方法 - getCenter”,但是每当用像a,b或d这样的单个对象替换“objects.get(i)”时,它会发现方法就好。我不明白为什么它无法从ArrayList中找到方法。为什么我的程序不能识别我的方法?
public class TestPoly
{
public static void main (String []args)
{
ArrayList objects = new ArrayList();
Circle2 a = new Circle2(33,10,4);
Cylinder2 b = new Cylinder2(21,15,40,5);
Oval2 c = new Oval2(3,7,34,10);
OvalCylinder2 d = new OvalCylinder2(5,11,5,5,7);
objects.add(a);
objects.add(b);
objects.add(c);
objects.add(d);
for (int i = 0; i < objects.size(); i++)
{
System.out.println("For " + objects.get(i).getClass().getName() + objects.get(i).getCenter());
}
}
}
Circle2是这个。
public class Circle2
{
// instance variables
private int x;
private int y;
private int radius;
/**
* Constructor for objects of class circle
*/
public Circle2(int p_x, int p_y, int r)
{
// initialise instance variables
x = p_x;
y = p_y;
radius = r;
}
public int getRadius()
{
return radius;
}
public String getCenter()
{
return " the center is at (" + x + "," + y + ")";
}
}
Cylinder2,Oval2和OvalCylinder2都只是Circle2的子类。
您还没有声明类型参数eter或Type参数为你的'ArrayList',所以它默认为'Object'。 'Object'没有'getCenter()'方法。 –