オブジェクト指向の三大特徴(継承・カプセル化・多相性)とは?おぶじぇくとしこうのさんだいとくちょう
継承・カプセル化・多相性は、変更の波及範囲を局所化するための三つの道具。設計判断としては、継承は共通部分をまとめる代わりに親子を強く結び付け、多相性は条件分岐を型へ追い出す代わりに実行時の経路を追いにくくし、カプセル化は内部表現の変更を外へ漏らさない代わりに外から観測できる情報を減らす。
最終更新:2026-10-06
システムアーキテクトを最短で暗記・合格する →背景
データと処理を別々に置く作りでは、データ構造をひとつ変えるだけで参照している全モジュールへ影響が及んだ。三大特徴は「変わる理由が同じものを一か所に集める」ための仕掛けとして生まれている。したがってSAで問われるのは文法ではなく、ソフトウェア方式設計で「どこを可変点として開けておき、どこを固定するか」の判断である。開けすぎれば抽象の層が増えて読解と性能の代償を払い、閉じすぎれば仕様変更のたびに広く手が入る。
具体例
Java で引数や戻り値の型を List にしておけば、実装を ArrayList から CopyOnWriteArrayList へ差し替えても呼び出し側は変わらない。一方 AbstractList を継承した独自クラスは、親の内部仕様が変わると影響を受ける。可変点をインタフェースに置くか継承に置くかで、後の移行コストが分かれる。
試験での引っ掛け
継承は再利用の手段ではなく型の置換可能性(is-a)の宣言で、実装だけ借りたいなら委譲を選ぶ。多相性を実現するのは子クラスでの再定義(オーバーライド)であり、引数の型や個数を変えて同名を併存させるオーバーロードとは別物。カプセル化が隠すのは内部の実装であって値の秘匿ではない。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。