本文へスキップ
BecomeCoder

UMLコース · 第2章 クラス図 · レッスン4

継承と実現 ― is-a の関係

導入

「犬は動物である」「正社員は従業員である」のような is-a(〜の一種である)の関係は、継承(汎化) で表します。インターフェースを実装する関係は 実現 で表し、線の種類で区別します。

説明

  • 継承(汎化) … 白い三角の実線矢印 <|--。「子 ← 親」を指す
  • 実現 … 白い三角の点線矢印 <|..。「実装クラス ← インターフェース」を指す
classDiagram
    class Animal {
        +Eat() void
    }
    class Dog {
        +Bark() void
    }
    class IPettable {
        +Pet() void
    }
    Animal <|-- Dog
    IPettable <|.. Dog

この図は「DogAnimal を継承し(実線)、IPettable インターフェースを実現している(点線)」と読みます。C# なら class Dog : Animal, IPettable にあたります。

読んでみよう

実線(継承)と点線(実現)は、UML でもっとも間違えやすい区別です。「クラスを継ぐなら実線、約束(インターフェース)を果たすなら点線」と覚えておきましょう。次章では、時間の流れを表す シーケンス図 に進みます。