设计一个名为Square的类,继承自GeometricObject类并实现Colorable接口。实现howToColor方法,显示一个消息“Color all four sides”(给所有的四条边着色)。Square类中除继承的变量外还有width和height两个double型的私有变量。重写toString()方法,具体格式参见下文所贴图片程序运行结果:如果被着色则先调用howToColor,同时返回颜色和着色信息;否则直接返回颜色和着色信息。
时间: 2024-02-17 07:01:28 浏览: 66
JAVA可着色接口Colorable
好的,下面是对应的Java代码实现:
```java
public class Square extends GeometricObject {
private double width;
private double height;
public Square() {
this.width = 1.0;
this.height = 1.0;
}
public Square(double width, double height) {
this.width = width;
this.height = height;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
@Override
public String toString() {
if (isFilled()) {
howToColor();
return super.toString() + "\nWidth=" + width + "\nHeight=" + height;
} else {
return super.toString() + "\nWidth=" + width + "\nHeight=" + height;
}
}
@Override
public void howToColor() {
System.out.println("Color all four sides");
}
}
```
在这个代码中,我们首先定义了一个`Square`类,继承自`GeometricObject`类并实现`Colorable`接口。`Square`类中包含了两个私有变量`width`和`height`,分别用于存储正方形的宽度和高度。我们提供了无参和两个参数的构造方法,以及相应的修改器和访问器。此外,我们重写了`getArea()`和`getPerimeter()`方法,用于计算正方形的面积和周长。最后,我们重写了`toString()`方法,用于返回正方形颜色、着色信息和宽度高度的字符串表示。如果正方形被着色,则先调用`howToColor()`方法,然后再返回相应的字符串表示。
由于`Square`类实现了`Colorable`接口,因此我们还需要提供`howToColor()`方法的具体实现。在这里,我们只需要输出一个消息“Color all four sides”即可。
阅读全文