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.
57 lines
1.0 KiB
57 lines
1.0 KiB
// 抽象图形类
|
|
abstract class Shape {
|
|
public abstract double getArea();
|
|
}
|
|
|
|
// 圆形
|
|
class Circle extends Shape {
|
|
private double r;
|
|
|
|
public Circle(double r) {
|
|
this.r = r;
|
|
}
|
|
|
|
@Override
|
|
public double getArea() {
|
|
return Math.PI * r * r;
|
|
}
|
|
}
|
|
|
|
// 矩形
|
|
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());
|
|
}
|
|
}
|
|
|