戻り値だけ違うメソッド
このコードを実行するとどうなるか。
public class Main {
static int f() { return 1; }
static String f() { return "a"; }
public static void main(String[] args) {
System.out.println(f());
}
}
- A
1と出力される - B
aと出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: 実行まで進まないので、何も出力されません。
- B: 実行まで進まないので、何も出力されません。
- C: メソッドの重複はコンパイル時に見つかります。
- D: 戻り値の型だけが違うメソッドは定義できないので、コンパイルエラーです。
ポイント
- オーバーロードは引数の型・数・順番で区別します。戻り値の型だけが違うメソッドは定義できません。