問題
問12
オブジェクト指向プログラミングにおいて、異なるクラスのオブジェクトが同じ名前のメソッドを持つ場合、そのメソッドを呼び出した際に、オブジェクトのクラスに応じて異なる処理が実行される特性を何と呼ぶか。
- カプセル化
- 継承
- 抽象化
- 多相性
正解
正解は「エ」です。
解説
この問題の正解は「多相性(ポリモーフィズム)」です。多相性とは、オブジェクト指向プログラミングにおける重要な概念の一つで、「同じメッセージ(メソッドの呼び出し)を送っても、受け取ったオブジェクトによって振る舞い(実行される処理)が変わる」という性質を指します。
例えば、「動物」という親クラスから「犬」クラスと「猫」クラスが作られているとします。両方のクラスに「鳴く」という同じ名前のメソッドを定義し、犬オブジェクトでは「ワン!」と表示し、猫オブジェクトでは「ニャー!」と表示するように実装します。
このとき、プログラムの実行者はオブジェクトが犬か猫かを意識せず、単に「鳴く」メソッドを呼び出すだけで、それぞれのオブジェクトに応じた正しい鳴き声を得ることができます。このように、同じ指示でも対象によって結果が多様に変化する性質が多相性です。問題文の「同じ名前のメソッド」「オブジェクトのクラスに応じて異なる処理が実行される」という記述は、この多相性の特徴を的確に説明しています。
ア(カプセル化):
データ(属性)とそれを操作する手続き(メソッド)を一つにまとめ、内部の詳細を外部から隠す仕組みです。
イ(継承):
あるクラス(親クラス)の性質を、別のクラス(子クラス)が受け継ぐ仕組みです。コードの再利用性を高めます。
ウ(抽象化):
オブジェクトの複雑な詳細を隠蔽し、必要な特徴だけを抽出して単純化することです。
解法のポイント
この問題を解くには、オブジェクト指向の三大要素である「カプセル化」「継承」「多相性」のそれぞれの意味を正確に区別して理解していることが重要です。問題文の「同じ名前のメソッドで、処理が異なる」というキーワードが、多相性(ポリモーフィズム)を指し示す最大のヒントです。「多相性」は「多様性」や「多態性」とも訳され、文字通り「多くの形に変わる性質」と覚えるとイメージしやすいです。それぞれの用語がどのような仕組みで、何を目的にしているのかをセットで覚えておくと、迷わずに解答できます。
用語補足
オブジェクト指向:
ソフトウェア開発の考え方の一つで、現実世界の「モノ(オブジェクト)」のように、データと手続きをセットで扱うことで、プログラムを部品化し、再利用や保守を容易にします。
クラス:
オブジェクトの設計図です。同じ種類のオブジェクトが共通して持つデータ(属性)と手続き(メソッド)を定義します。例えば、「車」クラスから「プリウス」「カローラ」といった具体的なオブジェクト(インスタンス)が作られます。
オブジェクト:
クラスという設計図に基づいて作られた、実体のことです。データと、そのデータを操作する手続きをひとまとめにしたものです。
メソッド:
オブジェクトが持つ操作や手続きのことです。オブジェクトに対する命令や振る舞いを定義します。例えば、「車」オブジェクトなら「走る」「止まる」といったメソッドがあります。


