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.

1.4 KiB

形状类图

+-------------------+
|     Shape         |
+-------------------+
| +getArea():double |
+-------------------+
         ^
         | 继承
+---------+----------+
|                    |
v                    v
+----------------+   +-------------------+   +----------------+
|    Circle      |   |    Rectangle      |   |    Triangle    |
+----------------+   +-------------------+   +----------------+
| -radius:double |   | -length:double    |   | -base:double   |
|                |   | -width:double     |   | -height:double |
+----------------+   +-------------------+   +----------------+
| +getArea():double | | +getArea():double | | +getArea():double |
+----------------+   +-------------------+   +----------------+

+-------------------+
|    ShapeUtil      |
+-------------------+
| +printArea(Shape):void |
| +main(String[]):void   |
+-------------------+

类说明

  1. Shape - 抽象类,定义了计算面积的抽象方法
  2. Circle - 圆形,继承自 Shape,使用 π×r² 计算面积
  3. Rectangle - 矩形,继承自 Shape,使用长×宽计算面积
  4. Triangle - 三角形,继承自 Shape,使用 0.5×底×高计算面积
  5. ShapeUtil - 工具类,用于测试不同形状的面积计算

多态特性

ShapeUtil.printArea() 方法接收 Shape 类型参数,但运行时会根据实际传入的子类对象调用对应的 getArea() 方法,体现了 Java 的多态特性。