Является ли нулевая ссылка экземпляром класса?
Давайте проясним это. Ссылка не является примером чего-либо. Это ссылка. Объект , на который он ссылается , если есть, является экземпляром некоторого класса. Но нулевая ссылка не относится ни к какому объекту.
Мой вопрос: откуда Java знает, что переданный ноль - это Bar, а не Foo?
Это не так. Ваша программа лгала вам. Он печатает «Bar», если ссылка не ссылается на экземпляр Foo. Плохое кодирование с вашей стороны.
Я знаю, почему компилятор выбирает Bar, а не Foo (потому что происходит преобразование из foo в bar и из bar в foo, а не наоборот).
Компилятор не сделал такого выбора. Ваш код прошел плохо спроектированный тест и распечатал.
Но как метод узнает, что этот ноль исходит от Бара, а не от Фу?
Это не так. Догадалась. Это неправильно.
содержит ли null некоторую информацию об объекте, который назначен?
Он вообще не содержит информации.