package w5; public class ShapeCalculator { abstract class Shape { public abstract double getArea(); } class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } } class Rectangle extends Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double getArea() { return width * height; } } class Triangle extends Shape { private double base; private double height; public Triangle(double base, double height) { this.base = base; this.height = height; } @Override public double getArea() { return 0.5 * base * height; } } class ShapeUtil { public static void printArea(Shape shape) { System.out.println("图形面积为:" + shape.getArea()); } } public static void main(String[] args) { ShapeCalculator calculator = new ShapeCalculator(); Shape circle = calculator.new Circle(5); Shape rectangle = calculator.new Rectangle(4,6); Shape triangle = calculator.new Triangle(3,8); System.out.println("====== 图形面积计算器 ======"); ShapeUtil.printArea(circle); ShapeUtil.printArea(rectangle); ShapeUtil.printArea(triangle); } }