メインコンテンツへ
アルゴリズムとプログラミング

オブジェクト指向プログラミングの特徴のうち、異なるクラスのオブジェクトを同 一のインタフェースで操作したときに、操作対象クラスに応じた異なる動作を可能に することを何と呼ぶか。

ア.委譲
イ.継承
ウ.コンポジション
エ.多相性正解

解説

「同じリモコンのボタンを押すと、テレビは電源ON、エアコンは送風開始、DVDは再生になる」——同じ操作なのに対象によって動作が変わる、その仕組みが多相性(ポリモーフィズム)です。

なぜ エ が正解か

多相性とは「同一のインタフェース(メソッド名・呼び出し方)を複数クラスに持たせ、実行時に対象クラスが自分の動作を決める」仕組みです。例えば Animal クラスの speak() を呼ぶと、Dog なら「ワン」、Cat なら「ニャン」と返る——呼び出す側はクラスの種類を気にせず同じコードを書けます。「誰が受け取るかによって意味が変わるメッセージ」と覚えると、原理がスッと入ります。

なぜ ア は間違いか

委譲は「自分でやらず、別のオブジェクトに仕事を丸投げする」設計パターンで、インタフェースを統一して動作を変える話ではありません。部下に仕事を振る「上司」であって、ボタンが変身する「リモコン」ではないんです。

なぜ イ は間違いか

継承は親クラスの特性を子クラスが引き継ぐ仕組みで、多相性と親戚ではあります——が「同一インタフェースで異なる動作」を実現するのは多相性であり、継承はそのための手段の一つに過ぎません。親の家を受け継いでも、それはリフォームの話ではない。

なぜ ウ は間違いか

コンポジションは複数のオブジェクトを組み合わせて機能を作る構造の話で、「継承より委譲を使え」文脈でよく出てきます。同一インタフェースで動作が変わるとは別の概念なので、「部品の組み合わせ」と「ボタンの意味変化」を混同しないように。

出典: 基本情報技術者試験 令和7年 公開問題