创建个类,包含成员变量成员方法构造方法,调成员时计算圆面积,调无参构造时计算矩形面积,调有参时计算梯形面积
时间: 2024-10-08 22:20:25 浏览: 24
为了创建这样一个类,我们可以将其命名为`Shape`,它是一个抽象基类,然后派生出三个子类:`Circle`, `Rectangle`, 和 `Trapezoid`。每个子类将有自己的属性和计算面积的方法。下面是类的设计示例:
```java
// 定义抽象类 Shape
abstract class Shape {
// 抽象方法,计算面积
abstract double calculateArea();
// 构造方法,用于初始化形状的共通部分
public Shape() {
System.out.println("使用默认构造方法,计算一般面积");
}
}
// 子类 Circle,继承 Shape 并重写 calculateArea()
class Circle extends Shape {
private double radius;
// 构造方法接受半径作为参数
public Circle(double radius) {
this.radius = radius;
}
@Override
double calculateArea() {
return Math.PI * radius * radius;
}
}
// 子类 Rectangle,继承 Shape 并重写 calculateArea()
class Rectangle extends Shape {
private double width;
private double height;
// 构造方法接受宽度和高度作为参数
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double calculateArea() {
return width * height;
}
}
// 子类 Trapezoid,继承 Shape 并重写 calculateArea()
class Trapezoid extends Shape {
private double base1;
private double base2;
private double height;
// 构造方法接受底边和高作为参数
public Trapezoid(double base1, double base2, double height) {
this.base1 = base1;
this.base2 = base2;
this.height = height;
}
@Override
double calculateArea() {
return (base1 + base2) * height / 2;
}
}
// 使用示例
public static void main(String[] args) {
// 创建圆形对象并计算面积
Circle circle = new Circle(5);
System.out.println("Circle area: " + circle.calculateArea());
// 创建矩形对象并计算面积
Rectangle rectangle = new Rectangle(4, 6);
System.out.println("Rectangle area: " + rectangle.calculateArea());
// 创建梯形对象并计算面积
Trapezoid trapezoid = new Trapezoid(3, 7, 4);
System.out.println("Trapezoid area: " + trapezoid.calculateArea());
}
```
阅读全文