题目1.(1)设计一个形状类 Shape,包含一个 getArea()方法,该方法不包含实际语句。 (2)在 Shape 类基础上设计圆形、矩形、三角形和梯形四个子类,要求根据实际形状重写 getArea()方法。 (3)设计一个 TestShape 类,包含变量 area(存储总面积)、静态方法 countArea(Shape s),该方法负责把参数中的形状面积加入到 area 中。在 main 函数中新建(2)中四种类型的对象s1、s2、s3、s4,通过调用 countArea 方法把四个对象面积累加到 area 中,最后输出 area。
时间: 2024-02-13 12:00:17 浏览: 97
CircleTest_java_设计一个circle_点类_圆类_
5星 · 资源好评率100%
以下是实现代码:
```
// Shape 类
class Shape {
public double getArea() {
return 0.0;
}
}
// Circle 类
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
// Rectangle 类
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public double getArea() {
return width * height;
}
}
// Triangle 类
class Triangle extends Shape {
private double base;
private double height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
public double getArea() {
return 0.5 * base * height;
}
}
// Trapezoid 类
class Trapezoid extends Shape {
private double top;
private double bottom;
private double height;
public Trapezoid(double top, double bottom, double height) {
this.top = top;
this.bottom = bottom;
this.height = height;
}
public double getArea() {
return 0.5 * (top + bottom) * height;
}
}
// TestShape 类
class TestShape {
public static double area = 0.0;
public static void countArea(Shape s) {
area += s.getArea();
}
public static void main(String[] args) {
Circle s1 = new Circle(5.0);
Rectangle s2 = new Rectangle(2.0, 3.0);
Triangle s3 = new Triangle(4.0, 5.0);
Trapezoid s4 = new Trapezoid(2.0, 4.0, 3.0);
countArea(s1);
countArea(s2);
countArea(s3);
countArea(s4);
System.out.println("Total area: " + area);
}
}
```
在这个实现中,Shape 类是一个抽象类,只包含一个 getArea() 方法,但不包含实际语句。这个方法在每个子类中被重写,以计算每个形状的实际面积。TestShape 类包含一个静态变量 area,该变量存储所有形状的总面积。countArea() 方法接受一个 Shape 对象作为参数,并将该对象的面积添加到 area 变量中。在 main() 函数中,我们创建四个不同类型的形状对象并将它们的面积累加到 area 中,最后输出总面积。
阅读全文