+---------------------------+ | <> | | Shape | +---------------------------+ | | +---------------------------+ | + getArea(): double | <-- 抽象方法 +---------------------------+ ^ | +----------+----------+----------+ | | | +----------------+ +----------------+ +----------------+ | Circle | | Rectangle | | Triangle | +----------------+ +----------------+ +----------------+ | - radius: double| | - width: double | | - base: double | | | | - height: double| | - height: double| +----------------+ +----------------+ +----------------+ | + getArea(): double| | + getArea(): double| | + getArea(): double| +----------------+ +----------------+ +----------------+ +---------------------------+ | ShapeUtil | +---------------------------+ | | +---------------------------+ | + printArea(Shape): void | <-- 静态方法 +---------------------------+