引数の順番が違うオーバーロード
出力はどれか。
public class Main {
static void show(int n, String s) { System.out.print("A"); }
static void show(String s, int n) { System.out.print("B"); }
public static void main(String[] args) {
show(1, "a");
show("b", 2);
}
}
- A
AB - B
AA - C
BA - D コンパイルエラーになる
正解と解説を見る
正解: A
- A: (int, String) の呼び出しは A、(String, int) の呼び出しは B です。
- B: 2つ目の呼び出しは (String, int) なので B のメソッドが選ばれます。
- C: 1つ目の呼び出しは (int, String) なので A のメソッドが選ばれます。
- D: 引数の型の順番が違えば、別のメソッドとしてオーバーロードできます。
ポイント
- 引数の型の 順番 が違えば、別のメソッドとしてオーバーロードできます。