为什么它调用String类型参数方法

时间:2018-05-17 05:41:03

标签: java string

为什么编译器匹配String重载,而不是Object重载?

public static void main(String[] args) {
    method(null);
}

public static void method(Object o) {
    System.out.println("Object impl");
}

public static void method(String s) {
    System.out.println("String impl");
}

2 个答案:

答案 0 :(得分:1)

  

它正在执行字符串,因为它会找到null的近似匹配但是   如果你尝试int和object作为方法参数。然后它会选择要打印的对象方法。

答案 1 :(得分:1)

Java Compiler选择最具体的方法。与Object相比,String是一种更具体的类型。