Перегрузка вызовов метода с нулевым параметром [дубликат]

Possible Duplicate:
Method Overloading for NULL parameter

В приведенном ниже коде вывод

String

и если я удалю метод с параметром типа String, то вывод будет

Object

Я знаю, как действует перегрузка методов, когда типы параметров не совпадают точно, но я не могу понять, как null можно рассматривать как параметр Objectи/или String.

Чем это объясняется?

class C {

    static void m1(Object x) {
        System.out.print("Object");
    }
    static void m1(String x) {
        System.out.print("String");
    }

    public static void main(String[] args) {
        m1(null);
    }
}
16
задан Community 23 May 2017 в 12:09
поделиться