ポリモーフィズム(多相性)とは?ぽりもーふぃずむ
ポリモーフィズム(多相性)とは、同じ操作を呼び出しても、受け手のオブジェクトの型に応じて異なる実装が実行される性質。呼び出し側は共通のインタフェースだけを知っていればよいので、対応する種類が増えても呼び出し側の分岐を書き足さずに済む。継承による上書きでも、共通インタフェースの実装でも成立する。
最終更新:2026-10-06
この語が出る過去問を解く →背景
型ごとにif文やswitch文で処理を振り分けていた頃は、種類が一つ増えるたびに分岐が伸び、その分岐を書いたすべての箇所を探して直し、既存機能まで含めて再テストする必要があった。ポリモーフィズムは、増える部分を新しいクラス側に閉じ込め、既存のコードには手を触れさせない構造に置き換える。修正に開かれ変更に閉じた設計として、科目Bのオブジェクト指向設問で「なぜこの設計を選ぶか」を書かせる論点になる。
具体例
JavaのListインタフェースを型として受け取るメソッドは、渡されるのがArrayListでもLinkedListでもそのまま動く。性能特性の都合で実装を差し替えても呼び出し側は無修正で、テストではモック実装を渡して外部依存を切り離せる。
試験での引っ掛け
同一クラス内で引数の型や個数を変えて同名メソッドを並べるオーバーロード(多重定義)と、継承関係で実装を差し替えるオーバーライドの取り違えが本命。またポリモーフィズムを継承限定の話と覚えていると、インタフェース実装だけで成立する選択肢を落とす。
関連用語
出た過去問
出典:令和6年度 春期 応用情報技術者試験 午前 問45(IPA)解説で登場
オブジェクト指向におけるクラス間の関係のうち、適切なものはどれか。
正解:サブクラスではスーパークラスの操作を再定義することができる。
要点:サブクラスは継承した操作を再定義でき多相性の基礎になる
オブジェクト指向では、サブクラスはスーパークラスの属性と操作を継承したうえで、同じシグネチャ(操作名と引数の型の組合せ)の操作を自分用に再定義できる。これをオーバーライド(操作の再定義)と呼び、同じメッセージに対してクラスごとに異なる振る舞いをさせる多相性(ポリモーフィズム)を実現する土台となる。
出典・参考
公式シラバスの4 開発技術 > 2. 設計 > (9) ソフトウェア設計手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。