平成29年秋期試験問題 午前問7
問7解説へ
オブジェクト指向プログラミングにおける,多相性を実現するためのオーバーライドの説明はどれか。
- オブジェクト内の詳細な仕様や構造を外部から隠蔽すること
- スーパークラスで定義されたメソッドをサブクラスで再定義すること
- 同一クラス内に,メソッド名が同一で,引数の型,個数,並び順が異なる複数のメソッドを定義すること
- 複数のクラスの共通する性質をまとめて,抽象化したクラスを作ること
広告
解説
オーバーライド(Override)は、上位クラスで定義されたメソッド(メンバー関数)を、下位クラス側の役割に応じて再定義し動作を変更することです。オブジェクト指向ではこの方法によって、"同じメッセージを送ってもオブジェクトごとに異なる操作が行われる"特性である多相性を実現しています。
親クラスで関数 Hello() が「"こんにちは"を表示する」と定義されているとき、子クラスで hello をオーバーライドして「"ごきげんよう"を表示する」と挙動を変更するようなイメージです。
親クラスで関数 Hello() が「"こんにちは"を表示する」と定義されているとき、子クラスで hello をオーバーライドして「"ごきげんよう"を表示する」と挙動を変更するようなイメージです。
- カプセル化の説明です。
- 正しい。オーバーライドの説明です。
- オーバーロードの説明です。hello(性別) と hello(性別, 年齢) など引数が異なる同名の関数を同一クラス内に定義することです。
- 汎化の説明です。例えば、りんごクラス、みかんクラス、ももクラスに共通の特性を集めて果物クラスを作ることです。
広告