public int test(int a) と public String test(int a) を同じクラス内に並べて定義すると、コンパイル時にどちらを呼び出すべきか判定できないため、コンパイルエラーが発生します。
また、コンパイラが呼び出し候補を探す際、1. 完全一致 -> 2. 暗黙の型変換(拡大型変換) -> 3. オートボクシング -> 4. 可変長引数、という明確な優先順位に従って適合するオーバーロードメソッドが決定されます。
print(long n) と print(Integer n) が定義されているクラスで print(10)(int型リテラル)を呼ぶと、オートボクシングより拡大型変換が優先されるため print(long n) が選択されます。
3. 曖昧な呼び出し(Ambiguous call):print(int a, double b) と print(double a, int b) に対し print(10, 20) を渡すと、どちらの型変換も可能なため曖昧さによりコンパイルエラーが発生します。
ファクトチェック:1Z0-825-JPN(2026-08-01確認)。試験番号1Z0-825-JPN、試験時間90分、60問、合格ライン65%です。
この記事は公式出題範囲・チェックリストとの対応を編集部で確認した学習解説です。