継承

更新日:

用語解説

継承は、既存のスーパークラスが定義する属性・操作・契約をサブクラスへ引き継ぎ、差分を追加又は再定義して型の階層を作る仕組みです。

■ 試験で押さえるポイント

  • サブクラスはスーパークラスの一種であるis-a関係を表し、上位型として扱っても契約を壊さない置換可能性が必要です。

  • メソッドのオーバーライドにより同じ呼出しへ型ごとの実装を提供し、動的結合と多相性を実現します。

  • 共通実装を再利用できますが、基底クラスの変更が派生クラスへ波及し、深い階層は理解・テストを難しくします。

  • 意味上のis-a関係がなく実装だけを使いたい場合は、has-a関係である委譲・合成を選ぶと結合を弱められます。

■ 選択肢での判断ポイント

上位型の契約を下位型へ引き継ぐis-a関係です。単なる部品保持である集約・合成と区別します。

例: Vehicleのmove契約をCarが満たし、Vehicle型を受け取る処理へCarを渡せるのが適切な継承です。Engineを持つ関係は合成です。

音声で聞く

同じ分野の用語