ホーム > システムアーキテクト試験 > 2012年
システムアーキテクト試験 2012年 午前2 問06
図において、“営業状況を報告してください”という同じ指示(メッセージ)に対して,営業課長と営業部員は異なる報告(サービス)を行っている。オブジェクト指向において、このような特性を表す用語はどれか。

ウ:多相性(正解)
エ:抽象化
ア:カプセル化
イ:継承
解説
オブジェクト指向の特性に関する問題【午前2 解説】
要点まとめ
- 結論:同じメッセージに対して異なるオブジェクトが異なる振る舞いを示す特性は「多相性(ポリモーフィズム)」です。
- 根拠:営業課長と営業部員が「営業状況を報告してください」という同じ指示に対し、異なる内容で報告している点が多相性の典型例です。
- 差がつくポイント:多相性は同じ操作がオブジェクトごとに異なる実装を持つことを意味し、単なる継承やカプセル化と混同しないことが重要です。
正解の理由
「営業状況を報告してください」という同じメッセージに対し、営業課長は課全体の売上目標や実績を報告し、営業部員は個人の売上目標や担当顧客状況を報告しています。これは同じ操作(メッセージ)に対してオブジェクトごとに異なる振る舞いを実現しているため、多相性(ポリモーフィズム)を表しています。
ウ: 多相性が正解です。
ウ: 多相性が正解です。
よくある誤解
多相性は単に継承関係があることや情報を隠すカプセル化とは異なり、同じ操作が異なる実装を持つことを指します。混同しやすいので注意しましょう。
解法ステップ
- 問題文の「同じ指示に対して異なる報告」という状況を把握する。
- オブジェクト指向の4大特性(カプセル化、継承、多相性、抽象化)を思い出す。
- 「同じメッセージに対して異なる振る舞い」を示す特性が多相性であることを確認。
- 選択肢の意味を照らし合わせて、多相性を選択する。
選択肢別の誤答解説
- ア: カプセル化
情報の隠蔽やデータと操作の一体化を指し、同じメッセージに対する異なる振る舞いとは異なります。 - イ: 継承
クラス間の親子関係を示し、コードの再利用や階層構造を作るものですが、異なる振る舞いを示す特性ではありません。 - ウ: 多相性
同じメッセージに対してオブジェクトごとに異なる処理を行う特性で、今回の問題の正解です。 - エ: 抽象化
複雑なものから本質的な特徴だけを取り出すことを指し、異なる振る舞いを示すこととは直接関係ありません。
補足コラム
多相性はオブジェクト指向の重要な特性の一つで、プログラムの柔軟性や拡張性を高めます。例えば、同じメソッド名でもクラスごとに異なる処理を実装できるため、コードの再利用性が向上します。JavaやC++など多くの言語でメソッドのオーバーライドとして実現されています。
FAQ
Q: 多相性と継承はどう違いますか?
A: 継承はクラス間の親子関係を作る仕組みで、多相性はその継承関係を利用して同じ操作が異なる振る舞いをすることを指します。
A: 継承はクラス間の親子関係を作る仕組みで、多相性はその継承関係を利用して同じ操作が異なる振る舞いをすることを指します。
Q: カプセル化は多相性と関係ありますか?
A: カプセル化はデータの隠蔽と操作の一体化であり、多相性とは異なる概念ですが、両方ともオブジェクト指向の基本特性です。
A: カプセル化はデータの隠蔽と操作の一体化であり、多相性とは異なる概念ですが、両方ともオブジェクト指向の基本特性です。
関連キーワード: 多相性, ポリモーフィズム, オブジェクト指向, メッセージ送信, メソッドオーバーライド