導入
「犬は動物である」「正社員は従業員である」のような is-a(〜の一種である)の関係は、継承(汎化) で表します。インターフェースを実装する関係は 実現 で表し、線の種類で区別します。
説明
- 継承(汎化) … 白い三角の実線矢印
<|--。「子 ← 親」を指す - 実現 … 白い三角の点線矢印
<|..。「実装クラス ← インターフェース」を指す
classDiagram
class Animal {
+Eat() void
}
class Dog {
+Bark() void
}
class IPettable {
+Pet() void
}
Animal <|-- Dog
IPettable <|.. Dog
この図は「Dog は Animal を継承し(実線)、IPettable インターフェースを実現している(点線)」と読みます。C# なら class Dog : Animal, IPettable にあたります。
読んでみよう
実線(継承)と点線(実現)は、UML でもっとも間違えやすい区別です。「クラスを継ぐなら実線、約束(インターフェース)を果たすなら点線」と覚えておきましょう。次章では、時間の流れを表す シーケンス図 に進みます。