応用情報技術者 2009年 春期 午前2 問46
問題文
図において、“営業状況を報告してください”という同じ指示(メッセージ)に対して、営業課長と営業部員は異なる報告(サービス)を行っている。オブジェクト指向において、このような特性を表す用語はどれか。

選択肢
ア:カプセル化
イ:継承
ウ:多相性(正解)
エ:抽象化
オブジェクト指向の特性に関する問題【午前2 解説】
要点まとめ
- 結論:同じメッセージに対して異なるオブジェクトが異なる振る舞いを示す特性は「多相性(ポリモーフィズム)」です。
- 根拠:営業部長からの「営業状況を報告してください」という同じ指示に対し、営業課長と営業部員が異なる内容で報告している点が多相性の典型例です。
- 差がつくポイント:多相性は同じ操作がオブジェクトの種類によって異なる動作をすることを指し、単なる継承やカプセル化と混同しないことが重要です。
正解の理由
選択肢ウの「多相性」は、同じメッセージ(操作)に対してオブジェクトごとに異なる具体的な処理を行うオブジェクト指向の基本的な特性です。
図の例では、「営業状況を報告してください」という同じ指示に対し、営業課長は「課全体の売上目標、売上実績の報告」、営業部員は「個人の売上目標、売上実績、担当顧客状況の報告」と異なる報告をしています。
このように同じメッセージに対して異なる振る舞いを実現しているため、多相性が正解です。
図の例では、「営業状況を報告してください」という同じ指示に対し、営業課長は「課全体の売上目標、売上実績の報告」、営業部員は「個人の売上目標、売上実績、担当顧客状況の報告」と異なる報告をしています。
このように同じメッセージに対して異なる振る舞いを実現しているため、多相性が正解です。
よくある誤解
- 「継承」と混同しやすいですが、継承は親クラスの性質を引き継ぐことであり、異なる振る舞いを示すこと自体ではありません。
- 「カプセル化」はデータと処理を一体化し外部から隠蔽することであり、異なる振る舞いの説明には適しません。
解法ステップ
- 問題文の「同じ指示に対して異なる報告を行っている」点に注目する。
- オブジェクト指向の4大特性(カプセル化、継承、多相性、抽象化)を思い出す。
- 「同じメッセージに対して異なる振る舞いをする」特性が何かを判断する。
- 多相性(ポリモーフィズム)が該当することを確認する。
- 選択肢の中から「多相性」を選ぶ。
選択肢別の誤答解説
- ア: カプセル化
データと処理を一つにまとめて外部から隠すこと。異なる振る舞いを示す説明には該当しません。 - イ: 継承
親クラスの性質を子クラスが受け継ぐこと。異なる振る舞いを示すことは可能ですが、問題の「同じ指示に対して異なる処理」という点は多相性の説明です。 - ウ: 多相性
同じメッセージに対してオブジェクトごとに異なる振る舞いを実現する特性であり、正解です。 - エ: 抽象化
複雑なものから本質的な部分だけを抜き出すこと。異なる振る舞いの説明には当てはまりません。
補足コラム
多相性はオブジェクト指向の中でも特に重要な概念で、プログラムの柔軟性や拡張性を高めます。例えば、同じメソッド名で異なるクラスが異なる処理を実装できるため、コードの再利用性が向上します。
また、多相性は「オーバーライド」や「インターフェースの実装」と密接に関連しています。
また、多相性は「オーバーライド」や「インターフェースの実装」と密接に関連しています。
FAQ
Q: 多相性と継承はどう違いますか?
A: 継承は親クラスの性質を引き継ぐこと、多相性は同じ操作が異なるクラスで異なる動作をすることを指します。多相性は継承を利用して実現されることが多いです。
A: 継承は親クラスの性質を引き継ぐこと、多相性は同じ操作が異なるクラスで異なる動作をすることを指します。多相性は継承を利用して実現されることが多いです。
Q: カプセル化は多相性と関係ありますか?
A: カプセル化はデータの隠蔽と一体化を指し、多相性とは異なる概念ですが、両方ともオブジェクト指向の基本特性です。
A: カプセル化はデータの隠蔽と一体化を指し、多相性とは異なる概念ですが、両方ともオブジェクト指向の基本特性です。
関連キーワード: 多相性、ポリモーフィズム、オブジェクト指向、継承、カプセル化、抽象化

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

