抽象の汎化

クラス図における抽象の汎化は、親と子の間にマッピングが存在する 依存関係です。

抽象の汎化は、クラス間の汎化または継承関係に非常に似ています。 抽象の汎化を使用して、親クラスは子クラスに対して、 インターフェースを作成するための特定の機能を継承するよう命じます。

注: C/C++ では、抽象の汎化は純粋な仮想操作を通じて達成されます。 純粋な仮想操作が含まれる親クラスは、抽象基底クラスと呼ばれます。 抽象基底クラスをインスタンス化することはできません。 子クラスは、その宣言内で純粋な仮想操作をオーバーライドする必要があります。 これを行なわないと、インスタンス化することができません。 抽象基底クラスは、子クラス上に設計インターフェースを強制します。

例えば、C/C++ クラスおよび抽象の汎化を視覚化する場合、 親クラスをインターフェースまたは設計テンプレートとすることができます。 Vehicle クラスは、抽象の汎化を使用する親クラスです。 Vehicle クラスは、 特定の操作を使用するように強制することによって、 すべての子に対する設計テンプレートまたはインターフェースになります。 子クラスである Boat は、Vehicle クラスからいくつかの操作を継承します。 Boat クラスは、これらの操作を使用しないと実装することができません。 このように、Vehicle クラスは、 すべての子の設計インターフェースとして機能します。

UML 視覚化クラス図における抽象の汎化は、 クラスのタイトルを他のクラスと区別することによって示されます。 抽象の汎化を使用する親クラスは、 イタリック文字で書かれたクラス・タイトルを持ちます。 その子によって継承されたすべての操作 (純粋な仮想操作) も、 イタリックで表示されます。

通常の汎化関係と抽象の汎化関係の相違を、以下の図で説明します。

C/C++ の通常の汎化 C/C++ の抽象の汎化
C/C++ の通常の汎化が表示されます。 C/C++ の抽象の汎化が表示されます。

関連概念
関連関係
依存関係
汎化関係
マニフェスト関係
所有要素の関連関係
権限関係
未解決の参照の装飾

フィードバック