抽象の汎化は、クラス間の汎化または継承関係に非常に似ています。 抽象の汎化を使用して、親クラスは子クラスに対して、 インターフェースを作成するための特定の機能を継承するよう命じます。
例えば、C/C++ クラスおよび抽象の汎化を視覚化する場合、 親クラスをインターフェースまたは設計テンプレートとすることができます。 Vehicle クラスは、抽象の汎化を使用する親クラスです。 Vehicle クラスは、 特定の操作を使用するように強制することによって、 すべての子に対する設計テンプレートまたはインターフェースになります。 子クラスである Boat は、Vehicle クラスからいくつかの操作を継承します。 Boat クラスは、これらの操作を使用しないと実装することができません。 このように、Vehicle クラスは、 すべての子の設計インターフェースとして機能します。
ドメイン・モデリング・クラス図における抽象の汎化は、クラスの タイトルを他のクラスと区別することによって示されます。抽象の汎化を使用する親クラスは、 イタリック文字で書かれたクラス・タイトルを持ちます。 その子によって継承されたすべての操作 (純粋な仮想操作) も、 イタリックで表示されます。
通常の汎化関係と抽象の汎化関係の相違を、以下の図で説明します。
| C/C++ の通常の汎化 | C/C++ の抽象の汎化 |
![]() |
![]() |