Java 17 Silver ・ 4. クラスの定義とインスタンスの使用
メソッドのオーバーロード の練習問題と解説
Java 17 Silver ラボ の「4. クラスの定義とインスタンスの使用 › メソッドのオーバーロード」の問題 7 問を載せています。問題を開くと、正解と選択肢ごとの解説が読めます。
メソッドのオーバーロード について
同じ名前で引数の違うメソッドを並べたとき、呼び出しでどれが選ばれるかを答える分類です。定義そのものが正しいかの判断も含みます。
オーバーロードになるのは引数の型・数・順番が違う場合で、戻り値の型だけが違うメソッドはコンパイルエラーです。どれが選ばれるかは、まず型がそのまま合うもの、次に広い型への変換 (byte → int など)、その次にボクシング・アンボクシング、最後に可変長引数の順に探します。
null を渡したとき、String と Object の候補があれば、より具体的な String が選ばれます。String と Integer のように親子関係の無い候補が 2 つあると、どちらとも決まらずコンパイルエラーです。Integer を渡すと、アンボクシングして int を選ぶより先に Object を受け取る候補が選ばれる点も出題されます。
問題 (7 問)
- byte を渡したときに選ばれるメソッド
- 可変長引数は最後の候補
- 戻り値だけ違うメソッド
- null を渡したときのオーバーロード
- どちらとも決まらない null
- Integer を渡したときのオーバーロード
- 引数の順番が違うオーバーロード
広告