出于好奇,我尝试了这个例子.
public class Class1 {
public void method(Object obj){
System.out.println("Object");
}
public void method(String str){
System.out.println("String");
}
public static void main(String... arg){
new Class1().method(null);
}
}
Run Code Online (Sandbox Code Playgroud)
输出为"String".我想知道JVM在什么基础上决定调用String作为参数而不是Object的方法.
Jon*_*oni 17
只要可以将多个重载方法应用于参数列表,就会使用最具体的方法.
在这种情况下,可以在传递时调用任一方法null,因为"null类型"可以分配给Object和String.采用的方法String更具体,因此将被选中.
Red*_*ddy 10
每当存在方法重载时,JVM将搜索从最特定类型到最不特定类型的方法
| 归档时间: |
|
| 查看次数: |
13638 次 |
| 最近记录: |