Метод перегрузки двусмысленности
Рассмотрим следующий блок кода:
class A {
static void m(String s) {
System.out.println("String");
}
static void m(Object o) {
System.out.println("Object");
}
public static void main(String [] args) {
A.m(null);
}
}
Здесь Output is "String". Теперь мой вопрос заключается в том, что, поскольку Object и String оба могут принимать нулевое значение, поскольку оба имеют тип Reference, тогда почему компилятор печатает "String" вместо того, чтобы показывать ошибку неоднозначности?