平成29年度 秋期 基本情報技術者試験 午前 問7
テクノロジ/開発技術オブジェクト指向プログラミングにおける,多相性を実現するためのオーバーライドの説明はどれか。
出典:平成29年度 秋期 基本情報技術者試験 午前 問7
- アオブジェクト内の詳細な仕様や構造を外部から隠蔽すること
- イスーパークラスで定義されたメソッドをサブクラスで再定義すること
- ウ同一クラス内に,メソッド名が同一で,引数の型,個数,並び順が異なる複数のメソッドを定義すること
- エ複数のクラスの共通する性質をまとめて,抽象化したクラスを作ること
正解:イ
解説
オーバーライドとは,スーパークラス(親クラス)で定義されたメソッドと同じ名前・引数のメソッドをサブクラス(子クラス)で再定義し,サブクラスのオブジェクトに対しては再定義した方の処理が呼び出されるようにする仕組みです。これにより,呼び出し側のコードを変えずに,オブジェクトの実際のクラスに応じて異なる振る舞いをさせる多相性(ポリモーフィズム)が実現できます。
選択肢ごとの解説
- ア誤り。オブジェクト内部の詳細な仕様や構造を外部から隠蔽することは,カプセル化の説明です。
- イ正しい。スーパークラスで定義されたメソッドをサブクラスで再定義することがオーバーライドの定義です。
- ウ誤り。同一クラス内でメソッド名は同じだが引数の型・個数・並び順が異なる複数のメソッドを定義することは,オーバーロード(多重定義)の説明です。
- エ誤り。複数クラスの共通する性質をまとめて抽象化したクラスを作ることは,汎化(クラスの継承構造を作ること)の説明です。