java code (The Colorable interface) Design an interface named Colorable with a void method named howToColor(). Every class of a colorable object must implement the Colorable interface. Design a class named Square that extends GeometricObject and implements Colorable. Implement howToColor to display the message Color all four sides. The Square class contains a data field side with getter and setter methods, and a constructor for constructing a Square with a specified side. The Square class has a private double data field named side with its getter and setter methods. It has a no-arg constructor to create a Square with side 0, and another constructor that creates a Square with the specified side. Draw a UML diagram that involves Colorable, Square, and GeometricObject. Write a test program that creates an array of five GeometricObjects. For each object in the array, display its area and invoke its howToColor method if it is colorable
时间: 2023-07-09 15:48:19 浏览: 60
Here is the Java code for the Colorable interface, Square class, and the test program:
Colorable interface:
```java
public interface Colorable {
void howToColor();
}
```
Square class:
```java
public class Square extends GeometricObject implements Colorable {
private double side;
public Square() {
this.side = 0;
}
public Square(double side) {
this.side = side;
}
public double getSide() {
return side;
}
public void setSide(double side) {
this.side = side;
}
@Override
public void howToColor() {
System.out.println("Color all four sides.");
}
@Override
public double getArea() {
return side * side;
}
}
```
Test program:
```java
public class TestProgram {
public static void main(String[] args) {
GeometricObject[] objects = new GeometricObject[5];
objects[0] = new Circle(5);
objects[1] = new Rectangle(3, 4);
objects[2] = new Square(2);
objects[3] = new Triangle(3, 4, 5);
objects[4] = new Square(5);
for (GeometricObject obj : objects) {
System.out.println("Area: " + obj.getArea());
if (obj instanceof Colorable) {
((Colorable) obj).howToColor();
}
}
}
}
```
Note that the GeometricObject class is not provided here, as it was not given in the original question. You can use any implementation of this class that you have or find online.
相关推荐
![.pdf](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![crx](https://img-home.csdnimg.cn/images/20210720083646.png)