抽象汎化

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

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

注: C/C++ では、抽象汎化は純粋な仮想処理を通して実現されます。 純粋な仮想処理を含む親クラスは、抽象基本クラスといいます。 抽象基本クラスをインスタンス化することはできません。 宣言内では、子クラスを純粋な仮想処理よりも優先させる必要があります。そうしないと、子クラスをインスタンス化できません。 抽象基本クラスは、子クラスに設計インターフェースを強制します。

例えば、C/C++ クラスおよび抽象汎化を可視化すると、親クラスはインターフェースまたは設計テンプレートになります。 Vehicle クラスは抽象汎化を使用する親クラスです。 Vehicle クラスはすべての子に特定の処理を使用するように強制して、これらの設計テンプレートまたはインターフェースになります。 子クラスの Boat は Vehicle クラスから複数の処理を継承します。Boat クラスを実装するには、これらの処理を使用する必要があります。 したがって、Vehicle クラスはすべての子の設計インターフェースとして機能します。

UML の可視化クラス図では、抽象汎化は他のクラスとクラス・タイトルが区別されて表示されます。 抽象汎化を使用する親クラスは、クラス・タイトルがイタリック文字で示されます。 同様に、子が継承したすべての処理 (純粋な仮想処理) もイタリックで示されます。

次の図は、標準汎化関係と抽象汎化関係の違いを示します。

C/C++ 標準汎化 C/C++ 抽象汎化
正規の C/C++ 汎化が表示されます。 C/C++ 抽象汎化が表示されます。

関連概念
関連
依存関係
汎化関係
マニフェスト関係
所有される要素関連
権限関係
未解決の参照の装飾
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved. (C) Copyright IBM Japan 2005