基本情報技術者試験過去問 令和7年度(2025年)科目A問12
オブジェクト指向プログラミングの特徴のうち,異なるクラスのオブジェクトを同一のインタフェースで操作したときに,操作対象クラスに応じた異なる動作を可能にすることを何と呼ぶか。
選択肢
- ア:委譲
- イ:継承
- ウ:コンポジション
- エ:多相性
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
異なるクラスのオブジェクトを、同一のインタフェースで操作しても、実際の処理内容が操作対象のクラスに応じて変わる性質は、多相性(ポリモーフィズム)と呼びます。
Point
この問題は、オブジェクト指向プログラミングの特徴のうち、多相性(ポリモーフィズム)の定義を説明文から判断できるかを確認するものです。あわせて、委譲・継承・コンポジションが「同一インタフェースで呼び出してクラスごとに動作が変わる」という性質そのものを指す用語ではないことを整理することがねらいです。
解くために必要な知識
この問題を解くには、オブジェクト指向における基本用語と、それぞれの違いを理解している必要があります。
用語の整理
用語一覧
| 用語名 | 意味 |
|---|---|
| 多相性(ポリモーフィズム) | 同一のインタフェースで操作しても、対象オブジェクトのクラスに応じて動作が変わる性質です。 |
| 継承(インヘリタンス) | 既存クラスの性質(データや操作)を別のクラスが受け継いで拡張できる仕組みです。 |
| 委譲(デリゲーション) | あるオブジェクトが自分の処理の一部を別オブジェクトに任せて実行する設計です。 |
| コンポジション | あるクラスが別クラスのオブジェクトを部品として持ち、それらを組み合わせて機能を実現する設計です。 |
| インタフェース | 外部から利用できる操作の約束事(例:メソッド名、引数、戻り値)です。 |
多相性の判断ポイント
問題文に次の2点がそろっていれば、多相性を指している可能性が高いです。
-
異なるクラスのオブジェクトを同じ呼び出し方で操作する
-
オブジェクトのクラスに応じて動作が変わる
選択肢ごとの解説
- ア:不正解
委譲は、あるオブジェクトが自分の処理の一部を別のオブジェクトに任せる設計方法です。同一のインタフェースで呼び出したときに、対象クラスによって動作が変わる性質そのものを指す用語ではありません。よって誤りです。
- イ:不正解
継承は、親クラスの属性やメソッドを子クラスが引き継ぐ仕組みです。クラスの定義や再利用に関する概念であり、問題文が述べる性質を直接表す用語ではありません。よって誤りです。
- ウ:不正解
コンポジションは、複数のオブジェクトを組み合わせて別のオブジェクトを構成する関係(has-a)です。呼び出し時に対象クラスごとに処理が切り替わる性質そのものを表す用語ではありません。よって誤りです。
- エ:正解
多相性は、異なるクラスのオブジェクトを同一インタフェースで操作したとき、操作対象のクラスに応じて異なる処理が実行される性質です。問題文の説明と一致します。よって正解です。
まとめ
異なるクラスのオブジェクトを、同一のインタフェースで操作しても、実際の処理内容が操作対象のクラスに応じて変わる性質は、多相性(ポリモーフィズム)と呼びます。
委譲は、あるオブジェクトが自分の処理の一部を別のオブジェクトに任せる設計方法です。同一のインタフェースで呼び出したときに、対象クラスによって動作が変わる性質そのものを指す用語ではありません。よって誤りです。
継承は、親クラスの属性やメソッドを子クラスが引き継ぐ仕組みです。クラスの定義や再利用に関する概念であり、問題文が述べる性質を直接表す用語ではありません。よって誤りです。
コンポジションは、複数のオブジェクトを組み合わせて別のオブジェクトを構成する関係(has-a)です。呼び出し時に対象クラスごとに処理が切り替わる性質そのものを表す用語ではありません。よって誤りです。
多相性は、異なるクラスのオブジェクトを同一インタフェースで操作したとき、操作対象のクラスに応じて異なる処理が実行される性質です。問題文の説明と一致します。よって正解です。