Java 编译错误';对于类型Shape';未定义方法setRadius(int); Shape[]sa=新形状[10]; 对于(int i=0;i
因此,我想将类“shape”的某些部分设置为classJava 编译错误';对于类型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
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);
}