Shape[] sa = new Shape[10];
for(int i = 0; i < sa.length; i=i+2) {
sa[i] = new Circle();
sa[i].setRadius(2);
}
所以我想将类“形状”的一部分设置为类Circle
,但它总是给我错误:
对于类型
setRadius(int)
未定义方法Shape
。
这归结为面向对象编程中继承的基本概念。
您声明了一个Shape
数组,这意味着您只能在访问元素时使用Shape
类中定义的方法,即使该项目是您所用的继承类型, ,Circle
所以问题在于Shape
类没有为setRadius(int radius)
定义方法,因此,当变量为Shape
时不能使用该方法
也许您正在追寻类似的东西?
Circle[] circleArray = new Circle[10];
for (int i = 0; i < circleArray.length; i += 2)
{
circleArray[i] = new Circle();
circleArray[i].setRadius(2);
}