Java 中的重载如何工作?

How Overloading in Java Works?

我不明白为什么在下面的代码中输出是 "String Version"。既然一切都是从对象派生的,那么为什么它匹配字符串版本?

public class AQuestion
{
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[]) throws Exception
   {
    AQuestion question = new AQuestion();
    question.method(null);
   }
}

输出: 字符串版本

Java代码

您必须传递一个对象才能获取对象版本

public class TestProgram {


    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[])
       {
          TestProgram question = new TestProgram();
          question.method(question);
       }
    }