编写一个Geometry的子类Triangle,可以计算三角形的面积,在主类中让Student 类的对象zhang调用area的方法计算一个三角形和两个圆的面积之和
import java.lang.Math;
// 几何图形类
abstract class Geometry {
abstract double area();
}
// 三角形类
class Triangle extends Geometry {
private double a, b, c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double area() {
double p = (a + b + c) / 2.0;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
}
// 学生类
class Student {
private String name;
private Geometry geometry;
public Student(String name, Geometry geometry) {
this.name = name;
this.geometry = geometry;
}
public double calcArea() {
return geometry.area();
}
}
// 主类
class Main {
public static void main(String[] args) {
Student zhang = new Student("张三", new Triangle(3.0, 4.0, 5.0));
double area1 = zhang.calcArea(); // 计算三角形面积
double area2 = Math.PI * 2.0 * 2.0; // 计算圆的面积
System.out.println("三角形面积为:" + area1);
System.out.println("圆的面积为:" + area2);
System.out.println("三角形和两个圆的面积之和为:" + (area1 + 2 * area2));
}
}
--
运行结果如下:
三角形面积为:6.0
圆的面积为:12.566370614359172
三角形和两个圆的面积之和为:31.132741228718345
有用的话,采纳一下哈