如下面类图所示,设计了一个名为 Shape 的抽象类。 因为形状未知,无法计算面积,因此将 getArea 方法定义为抽象方法,子类实现 抽象方法。 toString方法输出Shape[color=XXX],返回值为String 子类使用构造方法,public 方法名(String int int) 题目要求 根据题目描述及类图,完成Shape抽象类及其子类。 注: 在main方法当中测试类。
时间: 2023-11-27 17:52:37 浏览: 44
```java
public abstract class Shape {
protected String color;
public Shape(String color) {
this.color = color;
}
public abstract double getArea();
@Override
public String toString() {
return "Shape[color=" + color + "]";
}
}
public class Circle extends Shape {
private int radius;
public Circle(String color, int radius) {
super(color);
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public String toString() {
return "Circle[radius=" + radius + "," + super.toString() + "]";
}
}
public class Rectangle extends Shape {
private int width;
private int height;
public Rectangle(String color, int width, int height) {
super(color);
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public String toString() {
return "Rectangle[width=" + width + ",height=" + height + "," + super.toString() + "]";
}
}
```
阅读全文