Browse Source

上传文件至 'w5'

main
Chengwuyi 3 weeks ago
parent
commit
cfa49fbf9d
  1. 11
      w5/Main.java
  2. 14
      w5/Rectangle.java
  3. 4
      w5/Shape.java
  4. 6
      w5/ShapeUtil.java
  5. 14
      w5/Triangle.java

11
w5/Main.java

@ -0,0 +1,11 @@
public class Main {
public static void main(String[] args) {
Shape circle = new Circle(5);
Shape rect = new Rectangle(4, 6);
Shape tri = new Triangle(3, 8);
ShapeUtil.printArea(circle); // 面积为:78.54
ShapeUtil.printArea(rect); // 面积为:24.00
ShapeUtil.printArea(tri); // 面积为:12.00
}
}

14
w5/Rectangle.java

@ -0,0 +1,14 @@
public 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;
}
}

4
w5/Shape.java

@ -0,0 +1,4 @@
public abstract class Shape {
// 抽象方法:没有方法体,强制子类必须实现
public abstract double getArea();
}

6
w5/ShapeUtil.java

@ -0,0 +1,6 @@
public class ShapeUtil {
// 参数类型是Shape,传Circle/Rectangle/Triangle都可以 → 这就是多态!
public static void printArea(Shape shape) {
System.out.printf("面积为:%.2f%n", shape.getArea());
}
}

14
w5/Triangle.java

@ -0,0 +1,14 @@
public 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;
}
}
Loading…
Cancel
Save