正答2
解説
正解は2です。
オブジェクト指向でよく出る「オーバーロード」と「オーバーライド」の違いを問う問題です。
同一クラス内で同じ名前のメソッドを、引数の違いで複数定義できる仕組みが問われています。
【選択肢別解説】
1:× オーバーライドは、スーパークラスで定義されたメソッドをサブクラスで同じ名前・同じ引数のまま再定義することです。
同一クラス内での多重定義ではありません。
2:○ オーバーロード(多重定義)は、同一クラス内で同じメソッド名をもち、引数の型・個数・並び順が異なる複数のメソッドを定義することです。
呼出し時の引数によってどれが実行されるかが決まります。
3:× カプセル化は、データとそれを操作するメソッドを一体化し、内部の詳細を外部から隠すことです。
メソッド名の重複とは関係ありません。
4:× 汎化は、複数のクラスに共通する性質を取り出して上位のクラス(スーパークラス)を定義することです。
メソッドの多重定義ではありません。
【ポイント】
オーバーロードは「同じクラス・引数が違う」、オーバーライドは「親子クラス間・引数も同じで上書き」と整理しましょう。