public class OverloadingTest extends Format{
public int add(String s1){
System.out.println("With String");
return 1;
}
public int add(Object a){
System.out.println("With Object");
return 1;
}
public static void main(String[] args) {
OverloadingTest overloadingTest = new OverloadingTest();
overloadingTest.add(null);
}
}
为什么程序的输出With String ?
我已经尝试阅读 JLS 的第 6 版,但我仍然找不到答案。
我能猜到的唯一原因是选择了继承层次结构中最接近的匹配。
所以在这种情况下,它将 String 因为 Object 是它的超类。