IT資格用語解説基本情報技術者試験・ソフトウェア設計手法
継承
更新日:
用語解説
継承は、既存のスーパークラスが定義する属性・操作・契約をサブクラスへ引き継ぎ、差分を追加又は再定義して型の階層を作る仕組みです。
■ 試験で押さえるポイント
サブクラスはスーパークラスの一種であるis-a関係を表し、上位型として扱っても契約を壊さない置換可能性が必要です。
メソッドのオーバーライドにより同じ呼出しへ型ごとの実装を提供し、動的結合と多相性を実現します。
共通実装を再利用できますが、基底クラスの変更が派生クラスへ波及し、深い階層は理解・テストを難しくします。
意味上のis-a関係がなく実装だけを使いたい場合は、has-a関係である委譲・合成を選ぶと結合を弱められます。
■ 選択肢での判断ポイント
上位型の契約を下位型へ引き継ぐis-a関係です。単なる部品保持である集約・合成と区別します。
例: Vehicleのmove契約をCarが満たし、Vehicle型を受け取る処理へCarを渡せるのが適切な継承です。Engineを持つ関係は合成です。