关于String功能

时间:2012-05-05 04:41:26

标签: string

我正在开发以下课程。

public class Test1 
{
    public void method(Object o)
    {
        System.out.println("Object Verion");
    }   
    public void method(String s)
    {
        System.out.println("String Version");
    }



    public static void main(String args[])
    {
        Test1 question = new Test1();
        //question.method(question);

        question.method(null);
    }

}

现在执行它会调用字符串版本作为输出所以请告知这里字符串被视为null,我们应该传递什么来调用对象版本。提前谢谢

1 个答案:

答案 0 :(得分:4)

所有其他条件相同,将调用最具体的方法。来自the JLS

  

15.12.2.5. Choosing the Most Specific Method

     

如果多个成员方法都可访问且适用于a   方法调用,有必要选择一个提供   运行时方法调度的描述符。 Java编程   language使用选择最具体方法的规则。

     

非正式的直觉是一种方法更具体   如果可以传递第一个方法处理的任何调用,则为另一个   没有编译时类型错误的另一个。

question.method(null) 可以表示StringObject重载,但由于StringObject更具体(更窄) },String重载是被调用的方法。