null如何在此代码中工作,为什么不打印对象?
class Test1{
public void doStuff(Object o){
System.out.println("In Object");
}
public void doStuff(String o){
System.out.println("In String");
}
}
public class TTest {
public static void main(String args[]){
Test1 t = new Test1();
t.doStuff(null);
}
}
输出:
字符串
答案 0 :(得分:6)
Java总是会尝试使用最具体的方法版本。
自通话
t.doStuff(null);
适用于这两种方法
t.doStuff(Object o)
t.doStuff(String o)
Java将选择最具体的方法描述,即
t.doStuff(String o)
答案 1 :(得分:1)
由于String
是Object
的子类,Java将尝试使用适用层次结构中最下层的类。 null
可以在此处解释,因此使用了String
方法。