基本情報​技術者試験 令和7年度 公開問題 科目A、全20問のうちの問12。

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

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

  1. ア委譲
  2. イ継承
  3. ウコンポジション
  4. エ多相性
答えと解説を開く

正解はエです。

たとえば「鳴く」という同じ操作を、犬のオブジェクトに頼むと「ワン」、猫のオブジェクトに頼むと「ニャー」になるように作れます。呼び出す側は相手のクラスを気にせず、同じインタフェースで操作するだけです。どの動きになるかは、実際のオブジェクトのクラスが決めます。この性質を多相性と言います。正解はエです。

ほかの選択肢が違う理由

  • ア委譲は、あるオブジェクトが受けた処理を、自分で行わずに別のオブジェクトに任せることです。
  • イ継承は、既にあるクラスの属性や操作を引き継いで新しいクラスを作ることです。多相性を実現する手段として使われますが、問われている性質そのものではありません。
  • ウコンポジションは、オブジェクトを部品として中に持ち、組み合わせて大きなオブジェクトを作ることです。

仕組み

多相性のよいところは、呼び出す側のコードを変えずに、新しいクラスを足せることです。新しい動物を足しても、「鳴く」を呼ぶ側は書き換えずに済みます。

オブジェクト指向の三つの柱として、カプセル化、継承、多相性がよく並べられます。言葉と意味を組で覚えておきます。

この問に出る言葉