null如何在此代码中工作?
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); } }
输出:
在字符串中
Java将始终尝试使用最具体的方法版本。
自打电话
t.doStuff(null);
适用于这两种方法
t.doStuff(Object o) t.doStuff(String o)
Java将选择最具体的方法描述,即
t.doStuff(String o)
由于String
是Object
的子类,因此Java将尝试使用适用的层次结构中最下层的类。 null
可以解释为此处,因此使用String
方法。