問題
問12
オブジェクト指向プログラミングの特徴のうち,異なるクラスのオブジェクトを同一のインタフェースで操作したときに,操作対象クラスに応じた異なる動作を可能にすることを何と呼ぶか。
- 委譲
- 継承
- コンポジション
- 多相性
[出典:基本情報技術者試験 令和7年度(科目A) 問12]
正解
正解は「エ」です。
解説
オブジェクト指向プログラミングにおける「多相性(ポリモーフィズム)」とは、異なるクラスのオブジェクトを同じインタフェースで扱った場合に、そのオブジェクトのクラスに応じて異なる動作を実行できる性質のことを指します。つまり、一つの操作が複数の異なる形で実行される仕組みです。これが選択肢「エ」が正解である理由です。
たとえば、「動物」という抽象的なクラスがあり、そのサブクラスに「犬」や「猫」がある場合、同じ「鳴く」というメソッドを呼び出しても、犬は「ワンワン」、猫は「ニャー」と異なる鳴き声を返します。呼び出し側は「動物」という共通のインタフェースを使って操作できますが、内部での動作はオブジェクトによって異なります。これが多相性の典型的な例です。
この特徴により、プログラムの柔軟性や拡張性が向上し、異なるクラス間での共通操作を簡潔に記述できるため、オブジェクト指向設計の重要な要素となっています。
一方、他の選択肢は異なる意味を持ちます。アの「委譲」は、あるオブジェクトが自分の処理を別のオブジェクトに任せることを指し、操作の振り分けに使われます。イの「継承」は、あるクラスが既存のクラスの機能や属性を受け継ぐことで、コードの再利用を促進します。ウの「コンポジション」は、クラスが他のクラスのオブジェクトを部品として持つことで、複雑なオブジェクトを構成する設計手法です。これらの用語を区別し、多相性の意味を正確に理解することが、オブジェクト指向プログラミングの基礎力向上につながります。
- ア(委譲):
オブジェクトが処理の一部を別のオブジェクトに任せる設計手法で、多相性とは異なります。 - イ(継承):
既存のクラスの機能を引き継ぐ仕組みで、コードの再利用を促しますが、同一インタフェースで異なる動作を実現する多相性とは異なります。 - ウ(コンポジション):
オブジェクトが他のオブジェクトを部品として保持し構成する設計方法で、多相性の概念とは異なります。
難易度
この問題はオブジェクト指向の基本的な特徴を理解しているかを問うもので、IT初心者にとってはやや専門的な内容です。用語が似ているため混同しやすく、中級レベルの理解が求められますが、基本を押さえれば解答可能な問題です。
用語補足
多相性(ポリモーフィズム):
同じ操作(インタフェース)で異なるクラスのオブジェクトが異なる動作をする性質です。例えば、動物クラスの「鳴く」メソッドが犬は「ワンワン」、猫は「ニャー」と鳴くことが該当します。
継承:
あるクラスが別のクラスの性質や機能を引き継ぐ仕組みです。例えば、「車」クラスから「スポーツカー」クラスが機能を受け継ぐことができます。
委譲:
あるオブジェクトが処理の一部を別のオブジェクトに任せることです。例として、AさんがBさんに作業を依頼するイメージです。
解法のポイント
オブジェクト指向の基本用語を混同しないよう、それぞれの特徴と役割を整理して覚えることが大切です。特に多相性の具体例をイメージしながら学習すると理解が深まります。過去問演習や図解を活用して用語の使い分けに慣れましょう。


