检查字符串和对象

吉山·布马吉亚尼

这是代码:

public class OverloadingByObject {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Object object = null;
        new OverloadingByObject().SayHi(null);
        new OverloadingByObject().SayHi(object);
    }

    public void SayHi(String str) {

        System.out.println("String called");
    }

    public void SayHi(Object obj) {

        System.out.println("Object called");
    }
}

当我传递null时,应调用Object的方法。它调用String方法的原因是什么?

null可以分配给任何引用类型。在确定将调用哪个方法的重载版本时,将选择具有最特定参数的方法。String比更为具体Object(因为String是的子类Object)。因此SayHi(String str)被称为一个null论点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章