Java 编译错误';对于类型Shape';未定义方法setRadius(int); Shape[]sa=新形状[10]; 对于(int i=0;i

Java 编译错误';对于类型Shape';未定义方法setRadius(int); Shape[]sa=新形状[10]; 对于(int i=0;i,java,arrays,loops,class,object,Java,Arrays,Loops,Class,Object,因此,我想将类“shape”的某些部分设置为classCircle,但它不断给我错误: 类型形状的方法setRadius(int)未定义 这可以归结为面向对象编程中继承的基本概念 您声明了一个Shape数组,这意味着您在访问元素时只能使用Shape类中定义的方法,即使该项是继承类型,例如在您的示例中,Circle 因此问题在于Shape类没有为setRadius(int-radius)定义方法,因此,当变量为Shape 也许你在追求这样的东西 Circle[]circleArray=新圆圈[10

因此,我想将类“shape”的某些部分设置为class
Circle
,但它不断给我错误:

类型
形状
的方法
setRadius(int)
未定义


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

您声明了一个
Shape
数组,这意味着您在访问元素时只能使用
Shape
类中定义的方法,即使该项是继承类型,例如在您的示例中,
Circle

因此问题在于
Shape
类没有为
setRadius(int-radius)
定义方法,因此,当变量为
Shape

也许你在追求这样的东西

Circle[]circleArray=新圆圈[10];
对于(int i=0;i
尝试在问题中添加警告/错误,而不是图像
Circle ci=new Circle();ci.setRadius(2);sa[i]=ci(因为所有的圆都应该有一个半径,所以我会把它作为一个参数添加到它的构造函数中)
Shape[] sa = new Shape[10];
for(int i = 0; i < sa.length; i=i+2) {
    sa[i] = new Circle();
    sa[i].setRadius(2);
}