我必须在 Java 中解决这个“容器问题”。我有一个由不同数字组成的数组,我希望以下代码可以工作:
package container;
class Figure{
public void draw() {}
public String getColor() { return null; }
}
class Square extends Figure{
@Override
public void draw(){
System.out.println("Square");
}
}
class Circle extends Figure{
@Override
public void draw(){
System.out.println("Circle");
}
public float getRadius(){
return 8;
}
}
public class Container {
public static void main(String[] args) {
Figure[] figures = new Figure[3];
figures[0]= new Circle();
figures[1]= new Circle();
figures[2]= new Square();
for(Figure figure:figures){
figure.getColor();
figure.draw();
((Circle) figure).getRadius();
}
}
}
在哪里可以看到有问题,因为Square
没有getRadius()
方法。我有以下限制:
- 不能使用泛型
- 不能使用
instanceof
它应该是一个很好的面向对象的设计解决方案。