设计一个名为 Colorable 的接口,其中有名为 howToColor() 的 void 方法。可着色对象的每个类必须实现 Colorable 接口。设计一个名为 Square 的类,继承自 CeometricObject 类并实现 Colorable 接口。实现 howToColor 方法,显示一个消息 Color all four sides(给所有的四条边着色)。编写一个测试程序,创建有五个 GeometricObject 对象的数组。对于数组中的每个对象而言,如果对象是可着色的, 那就调用 howToColor 方法。
时间: 2024-01-22 22:18:55 浏览: 77
Colorable接口的定义如下:
```
public interface Colorable {
public void howToColor();
}
```
Square类的定义如下:
```
public class Square extends GeometricObject implements Colorable {
private double side;
public Square(double side) {
this.side = side;
}
public double getSide() {
return side;
}
@Override
public double getArea() {
return side * side;
}
@Override
public double getPerimeter() {
return 4 * side;
}
@Override
public void howToColor() {
System.out.println("Color all four sides");
}
}
```
测试程序的代码如下:
```
public class TestGeometricObject {
public static void main(String[] args) {
GeometricObject[] objects = new GeometricObject[5];
objects[0] = new Circle(5);
objects[1] = new Square(7);
objects[2] = new Rectangle(3, 4);
objects[3] = new Circle(2);
objects[4] = new Square(9);
for (GeometricObject object : objects) {
if (object instanceof Colorable) {
((Colorable) object).howToColor();
}
}
}
}
```
这个程序创建了一个包含五个 GeometricObject 对象的数组。对于数组中的每个对象而言,如果对象是可着色的,就调用 howToColor 方法。其中,Square类实现了Colorable接口,并且在howToColor方法中显示了一个消息。运行程序后,会输出“Color all four sides”这个消息。
阅读全文