×
メソッド
オーバーロードが成立するための絶対条件は「メソッドのシグネチャ(引数の型・個数・順番)が異なること」です。 「戻り値の型」や「アクセス修飾子」だけを変更して、引数リストが全く同じメソッドを複数定義することはできません。 例えば、public int test(int a) と public String test(int a) を同じクラス内に並べて定義すると、コンパイル時にどちらを呼び出すべきか判定できないため、コンパイルエラーが発生します。 また、コンパイラが呼び出し候補を探す際、1. 完全一致 -> 2. 暗黙の型変換(拡大型変換) -> 3. オートボクシング -> 4. 可変長引数、という明確な優先順位に従って適合するオーバーロードメソッドが決定されます。

試験でのポイント

Java Silver試験では、オーバーロードの成否判定と、曖昧な呼び出しによるコンパイルエラーが問われます。 1. 戻り値違いのみの重複:戻り値の型だけを変えて引数が同じ定義を書いた場合、オーバーロードではなく「重複定義」とみなされコンパイルエラーになります。 2. 型変換とオーバーロードの決定: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%です。

この記事は公式出題範囲・チェックリストとの対応を編集部で確認した学習解説です。

公式資料

用語集一覧 / ← 前の記事 / 次の記事 →