设计一个名为 Colorable 的接口,其中有名为 howToColor() 的 void 方法。可着色对象的每个类必须实现 Colorable 接口。设计一个名为 Square 的类,继承自 CeometricObject 类并实现 Colorable 接口。实现 howToColor 方法,显示一个消息 Color all four sides(给所有的四条边着色)。 画出包含 Colorable、Square 和 CeometricObject 的 UML 图。编写一个测试程序,创建有五个 GeometricObject 对象的数组。对于数组中的每个对象而言,如果对象是可着色的, 那就调用 howToColor 方法。
时间: 2024-01-22 22:18:43 浏览: 22
以下是 Colorable、Square 和 CeometricObject 的 UML 图:
```
+-----------------+
| GeometricObject|
+-----------------+
| color |
| filled |
| getArea() |
| getPerimeter() |
+-----------------+
^
|
|
+-----------------+
| Colorable |
+-----------------+
| howToColor() |
+-----------------+
^
|
|
+-----------------+
| Square |
+-----------------+
| side |
| getArea() |
| getPerimeter() |
| howToColor() |
+-----------------+
```
以下是测试程序代码:
```java
public class TestColorable {
public static void main(String[] args) {
GeometricObject[] objects = new GeometricObject[5];
objects[0] = new Square(5);
objects[1] = new Circle(3);
objects[2] = new Rectangle(4, 6);
objects[3] = new Triangle(3, 4, 5);
objects[4] = new Square(8);
for (GeometricObject object : objects) {
if (object instanceof Colorable) {
((Colorable) object).howToColor();
}
}
}
}
```
输出结果为:
```
Color all four sides
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![crx](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)