You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.8 KiB

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);
}
}