前のページではクラスがひとつだけの単一クラス図を描きましたが、クラスが 2 つ以上ある場合はあるクラスと他のクラスの関係も図に示す必要があります。
クラス間の関係は主に
の2つに分けられます。
ここではまず汎化について学びます。
さて汎化とは具体的にはインヘリタンスの関係を表します。
例えば前ページの FRUIT スーパークラスを継承してソース 1 の様な ORANGE サブクラスを作ったとします。
public class ORANGE extends FRUIT{ public ORANGE( int no ) // コンストラクタ { set_name( "みかん No." + no ); } }
この関係を英語で書くと
ORANGE is a FRUIT ( みかん は フルーツ です)
となりますので(微妙に a の使い方が変な気もしますが)、汎化は別名「is-a 関係」と言います。
さてこの「汎化」をクラス図で表す場合は中抜き三角の矢印線でクラスとクラスをつないで表します。
この矢印はスーパークラスの方に向けて付けます。
例えば上の FRUIT スーパークラスと ORANGE サブクラスを含むクラス図は次の図2となります。
なお ORANGE のコンストラクタは省略しています。
図1: 汎化(is-a 関係) の例