编写一个Geometry的子类Triangle,可以计算三角形的面积,在主类中让Student类的 对象Zhang调用area方法计算一个三角形和两个圆的面积之和。
时间: 2024-12-22 12:21:34 浏览: 59
首先,我们创建一个名为`Geometry`的抽象基类,用于包含几何形状的基本属性和通用的方法。然后,我们会编写一个`Triangle`子类,它继承自`Geometry`并实现计算面积的方法。
```java
// 抽象基类 Geometry
public abstract class Geometry {
protected double base;
protected double height;
public Geometry(double base, double height) {
this.base = base;
this.height = height;
}
// 公共方法,用于打印形状信息
@Override
public String toString() {
return "Base: " + base + ", Height: " + height;
}
}
// 子类 Triangle 继承 Geometry 并实现 area 方法
public class Triangle extends Geometry {
public double area() {
return 0.5 * base * height; // 计算三角形面积
}
}
```
接下来,我们将创建`Student`类,并在其内部有一个`Triangle`对象。学生对象`Zhang`将调用`area`方法计算三角形的面积。
```java
// Student 类
public class Student {
private Triangle triangle;
public Student(Triangle triangle) {
this.triangle = triangle;
}
// 调用 Triangle 的 area 方法计算三角形面积
public void calculateTriangleArea() {
double triangleArea = triangle.area();
System.out.println("Triangle area: " + triangleArea);
}
}
// 主类 Main,实例化 Student 和两个 Circle
public class Main {
public static void main(String[] args) {
// 创建 Triangle 对象
Triangle myTriangle = new Triangle(5, 4);
// 创建 Student 引用 Zhang
Student zhang = new Student(myTriangle);
// 计算三角形面积
zhang.calculateTriangleArea();
// 圆的面积示例(这里假设两个圆有相同的半径)
// 注意,Circle 类需要实现,但题目未提供,所以这部分略去
// Circle circle1 = new Circle(2);
// Circle circle2 = new Circle(2);
// 这里可以继续添加对圆面积的计算,但由于题目只关注三角形,
// 所以我们暂时仅处理了三角形部分
}
}
```
在这个例子中,`Zhang`通过`calculateTriangleArea`方法计算了一个特定三角形的面积。如果需要计算两个圆的面积,你需要创建相应的`Circle`类,并在`Main`类中为每个圆分配一个实例,然后计算它们的面积之和。不过,由于题目的重点在于三角形,所以我们仅展示了三角形的部分代码。
阅读全文
相关推荐

















