У меня есть следующий код:
public class Main {
public void method(Object o)
{
System.out.println("Object Version");
}
public void method(String s)
{
System.out.println("String Version");
}
public static void main(String args[])
{
Main question = new Main();
question.method(null);//1
}
}
Почему в результате получается "String Version"? и почему возникает ошибка компилятора, если первый метод принимает объект StringBuffer
?
Другой случай: если первый метод принимает объект StringBuffer
, и я пишу question.method("word");
, результатом будет "String Version". Зачем? почему ошибка компилятора отсутствует?