平成29年度 秋期 午前 問7
プログラミング
オーバーライドの説明
オブジェクト指向プログラミングにおける,多相性を実現するためのオーバーライドの説明はどれか。
- アオブジェクト内の詳細な仕様や構造を外部から隠蔽すること
- イスーパークラスで定義されたメソッドをサブクラスで再定義すること
- ウ同一クラス内に,メソッド名が同一で,引数の型,個数,並び順が異なる複数のメソッドを定義すること
- エ複数のクラスの共通する性質をまとめて,抽象化したクラスを作ること
答えと解説を見る
✓ これが正解イスーパークラスで定義されたメソッドをサブクラスで再定義すること
解説
親で決めた手続を子で定義し直すことを、そう呼んでいます。
オーバーライドは、親で定めた手続を子で定義し直すことです。名も引数もそのままで、中身だけを置き換えました。同じ呼び方で違う動きになるので、多相性が生まれます。だからスーパークラスの手続を再定義すると述べた肢が当たりました。詳細を外から隠す肢は、包み隠す考え方でした。中の作りを見せずに、窓口だけを開きます。同じ名で引数の違う手続を並べる肢は、多重定義になりました。呼ぶときの引数で、どれを使うかが決まります。共通の性質をまとめて抽象の親を作る肢は、汎化の考え方でした。下に並ぶ子から、共通部分を引き上げます。三つとも、親の手続を子で置き換えてはいません。隠すのか、並べるのか、引き上げるのか、置き換えるのかで分かれます。置き換えるのが芯でした。名も引数も同じです。置き換えるのが、この語の芯でした。
ほかの選択肢はなぜ違うのか
- アオブジェクト内の詳細な仕様や構造を外部か…:詳細な仕様や構造を外部から隠蔽すると述べています。中の作りを見せず、窓口だけを開く考え方でした。変更の影響を閉じ込められます。ところが手続を置き換えてはいません。隠す側の話でした。扱う題が違います。隠す側でした。
- ウ同一クラス内に,メソッド名が同一で,引数…:同一クラス内に引数の違う手続を並べると述べています。名は同じで、引数の型や数が違う形でした。呼ぶときの引数で、使うものが決まります。けれども親と子の関わりではありません。同じクラスの中の話でした。多重定義のほうです。
- エ複数のクラスの共通する性質をまとめて,抽…:共通する性質をまとめて抽象クラスを作ると述べています。下に並ぶ子から、共通部分を引き上げる形でした。整理して見通しをよくする働きになります。ところが中身の置き換えではありません。引き上げる側でした。向きが逆です。まとめる側です。
この問題の用語
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
出典:平成29年度 秋期 基本情報技術者試験 午前 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)