编译错误“未为Shape类型定义方法setRadius(int)”

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

See image

xiaozhi170 回答:编译错误“未为Shape类型定义方法setRadius(int)”

这归结为面向对象编程中继承的基本概念。

您声明了一个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);
}
本文链接:https://www.f2er.com/3133689.html

大家都在问