平成23年度 秋期 午前 問45
開発技術
多相性に関する問題
オブジェクト指向プログラムにおいて,実行時にメッセージとメソッドを関連付けることを何と呼ぶか。
- アカプセル化
- イ静的結合
- ウ多重継承
- エ動的結合
答えと解説を見る
✓ これが正解エ動的結合
解説
実行時に結び付けるので動的結合です。
この設問は、実行時に、という言葉が鍵になります。メッセージを受け取ったときにどのメソッドを動かすかを決める、その時点がいつなのかで名前が分かれるからです。翻訳する時点で決めてしまう結び付け方と、動かしている最中に決める結び付け方があり、後者が動的結合です。読み分ける軸は、いつ結び付けるのかという時点の話をしているか、という一点になります。なぜ時点を遅らせるのかというと、そのほうが都合のよい書き方ができるからです。同じ指示を送っても、受け取った相手によって振る舞いが変わる、という作りにできます。送る側は相手が何であるかを知らなくてよく、これが多相性を支えます。相手の種類は動かしてみるまで確定しないので、結び付けを実行時まで持ち越すわけです。残りの三つも、いずれも本物の用語です。ですから語の意味そのものではなく、時点を述べているかどうかで切り分けます。多相性をどう成り立たせるのかと問われたら、動的結合と答えられるようにしておくと確かです。
ほかの選択肢はなぜ違うのか
- アカプセル化:データとその扱い方を一つにまとめ、内部の作りを外から触れないようにすることを指します。独立性を高める工夫であって、どの時点で結び付けるかを述べた語ではありません。
- イ静的結合:翻訳する時点で結び付けを決めてしまう方式を指します。設問が置いた条件は動かしている最中に決めるという内容なので、決める時点が一つ手前にずれています。
- ウ多重継承:複数の親から性質を受け継ぐ仕組みを指す語です。同じ名前の要素がぶつかる恐れがあるため禁じている言語もありますが、結び付けの時点とは関わりがありません。
出典:平成23年度 秋期 応用情報技術者試験 午前 問45
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)