```mermaid
classDiagram
%% 动物相关类
class Animal {
<>
+name: String
+age: int
+eat()*
+makeSound()*
}
class Dog {
+breed: String
+fetch()
+makeSound()
}
class Cat {
+furColor: String
+purr()
+makeSound()
}
%% 交通工具相关类
class Vehicle {
<>
+make: String
+model: String
+startEngine()*
+stopEngine()*
}
class Car {
+numDoors: int
+startEngine()
+stopEngine()
}
class Bicycle {
+numGears: int
+pedal()
+startEngine()
+stopEngine()
}
%% 接口
interface Drivable {
+accelerate()
+brake()
}
%% 枚举
class FuelType {
<>
GASOLINE
DIESEL
ELECTRIC
HYBRID
}
%% 关联关系
Animal <|-- Dog
Animal <|-- Cat
Vehicle <|-- Car
Vehicle <|-- Bicycle
Drivable <|.. Car
Drivable <|.. Bicycle
Car --> FuelType: uses
%% 组合关系
class Engine {
+size: double
+start()
+stop()
}
Car *-- Engine: has
%% 依赖关系
class Person {
+name: String
+driveVehicle(v: Drivable)
}
Person ..> Drivable: depends on
```
这个类图展示了:
1. 抽象类(Animal, Vehicle)与具体实现
2. 继承关系(Dog/Cat继承Animal)
3. 接口实现(Drivable)
4. 组合关系(Car包含Engine)
5. 依赖关系(Person依赖Drivable)
6. 枚举类型(FuelType)
7. 多态方法(makeSound())
8. 抽象方法标记(*)
各个类包含属性和方法,展现了面向对象设计的主要特性。
评论区: