どのオーバーロードされたメソッドが以下のメソッドに対して呼び出され、なぜ?曖昧なオーバーロードされたメソッドにnullを渡す
私はこのコードを実行し、Listでオーバーロードされたメソッドを呼び出しますが、はなぜ発生しますか?
public class AmbigiousOverload {
public static void add(Object o) {
System.out.println("Overloaded method with Object.");
}
public static void add(List l) {
System.out.println("Overloaded method with List.");
}
public static void main(String[] args) {
add(null);
}
}
出力:すべてのList
実装がObject
のサブクラスであるとしてList
過負荷が、最も具体的なマッチングの過負荷であるため、Overloaded method with List.
"どのオーバーロードされたメソッドが呼び出されますか"あなたはどちらを知っていますか?あなたの質問にあります。 –