0
Может кто-нибудь объяснить мне, почему, если в перспективе этот кодJava передать «нуль» для перегруженных методов
public class MainClass{
public void method(Object obj){
System.out.println("+++++++++obj");
}
public void method(A a){
System.out.println("**********a");
}
public static void main(String[] args){
new MainClass().method(null);
}
}
Я получаю этот результат:
**********a
Как может нулевой ссылка разрешить в ссылку на объект «A»?
'null' может быть решен ни к чему, и, таким образом, будет использоваться наиболее конкретный метод. Добавьте метод с типом параметра 'B', и компилятор должен жаловаться на неоднозначные параметры. – Thomas
Это не переопределение, это перегрузка - и это не кажется * ужасно * неясным для меня. Вы ожидали бы, что 'A a = null;' не скомпилировать? –