抽象泛化关系与类之间的泛化关系或继承关系很相似。通过抽象泛化关系,父类将强制子类继承某些功能以创建接口。
例如,当您将 C/C++ 类和抽象泛化关系可视化时,父类可以成为一个接口或设计模板。Vehicle 类是一个使用抽象泛化关系的父类。Vehicle 类通过强制它的所有子代使用某些操作来成为这些子代的设计模板或接口。子类 Boat 从 Vehicle 类中继承多项操作。不使用这些操作,就不能实现 Boat 类。因此,Vehicle 类充当它的所有子类的设计接口。
在 UML 可视化类图中,抽象泛化关系是通过区分一个类与其他类的标题的方法来显示的。使用抽象泛化关系的父类的类标题是采用斜体字母书写的。并且,被其子代继承的所有操作(纯虚拟操作)也是采用斜体的。
下图说明了正常泛化关系与抽象泛化关系之间的差别。
| C/C++ 正常泛化关系 | C/C++ 抽象泛化关系 |
![]() |
![]() |