W4 图形面积计算器重构 public abstract class Shape { public abstract double getArea(); } // 圆形类,继承自 Shape class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } } // 矩形类,继承自 Shape 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; } } // 三角形类,继承自 Shape 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 { // 打印图形面积的方法,接受任意 Shape 子类对象 public static void printArea(Shape shape) { System.out.println("图形面积: " + shape.getArea()); } public static void main(String[] args) { // 创建各种图形对象 Shape circle = new Circle(5.0); Shape rectangle = new Rectangle(4.0, 6.0); Shape triangle = new Triangle(3.0, 4.0); // 统一打印各图形面积 System.out.println("圆形:"); printArea(circle); System.out.println("矩形:"); printArea(rectangle); System.out.println("三角形:"); printArea(triangle); } }