null如何在此代码中工作?

时间:2013-04-12 10:32:10

标签: java

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);
    }
}

输出:

  

字符串

2 个答案:

答案 0 :(得分:6)

Java总是会尝试使用最具体的方法版本。

自通话

t.doStuff(null);  

适用于这两种方法

t.doStuff(Object o)
t.doStuff(String o)

Java将选择最具体的方法描述,即

t.doStuff(String o)

答案 1 :(得分:1)

由于StringObject的子类,Java将尝试使用适用层次结构中最下层的类。 null可以在此处解释,因此使用了String方法。