# 形状类图 ``` +-------------------+ | 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 的多态特性。