平成26年度 秋期 午前 問47
ソフトウェア開発管理技術
多相性に関する問題
多相性を実現するときに,特有のものはどれか。
- アオーバライド
- イカプセル化
- ウ多重継承
- エメッセージパッシング
答えと解説を見る
✓ これが正解アオーバライド
解説
多相性に欠かせないのは手続を上書きする仕組みです。
多相性は、同じ呼び方をしても相手によって違う動きになる性質です。判定の軸は、設問が特有のものと言っている点にあります。オブジェクト指向にはいくつもの仕組みがありますが、そのうち多相性が無くても成り立つものは特有とは言えません。多相性のためにこそ必要な仕組みはどれか、という読み方をします。正解にあたるのはオーバライドです。親にあたるクラスで定めた手続を、子にあたるクラスが同じ名前で書き直すことを指します。呼ぶ側は同じ名前で呼んでいるだけなのに、実際に動くのは相手ごとに書き直された手続になります。これが無ければ、同じ呼び方で違う動きにするという仕掛けそのものを作れません。なお、同じクラスの中で引数の違う手続を複数定める、名前のよく似た別の仕組みと取り違えないようにします。
ほかの選択肢はなぜ違うのか
- イカプセル化:カプセル化は、データとそれを扱う手続を一つにまとめ、外から中を直に触らせないようにする仕組みです。オブジェクト指向を支える性質ではありますが、多相性が無くても成り立ちます。
- ウ多重継承:多重継承は、複数の親から性質を受け継げるようにする仕組みです。継承が絡むので惜しいところですが、受け継ぐ親が一つだけであっても、相手ごとに違う動きは実現できます。
- エメッセージパッシング:メッセージパッシングは、オブジェクトどうしが呼び掛け合って処理を進めるという考え方です。やり取り全般に共通する基本の考え方であり、この性質のためだけに用意された仕組みではありません。
出典:平成26年度 秋期 基本情報技術者試験 午前 問47
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)