Java知识点小记
在 Java 中,方法重载(method overloading)是指在同一个类中可以有多个方法名称相同但参数列表不同的方法。Java 编译器在编译时会根据参数的类型来选择调用哪个方法。
在当前的代码中,有两个 mythod
方法,一个接受 Object
参数,另一个接受 String
参数。当你传递 null
作为参数时,Java 编译器需要决定调用哪个方法。
以下是相关的代码片段:
public class Test {
public void mythod(Object obj) {
System.out.println("object");
}
public void mythod(String str) {
System.out.println("string");
}
public static void main(String[] args) {
Test t = new Test();
t.mythod(null);
}
}
在这段代码中,当你调用 t.mythod(null)
时,编译器需要选择最合适的方法。在这种情况下:
null
可以匹配任何引用类型(包括Object
和String
)。- 编译器会选择最具体的匹配方法(most specific method)。
String
是 Object
的子类,因此 String
比 Object
更具体。在方法重载选择中,编译器会优先选择参数类型更具体的方法。因此,这段代码会输出 string
,因为 mythod(String str)
比 mythod(Object obj)
更具体。
因此这段代码只会输出 string
。