Действительно ли пустой указатель является классом в Java?

Согласно, http://www.freshvanilla.org:8080/display/www/Java+Interview+Questions

Под

Какой класс является суперклассом каждого класса?

null кажется, ответ.

Я нашел это

 new Object().getClass().getSuperClass()

проверяет ответ как корректный. Но может null считаться классом?

Я вижу, что все примитивные типы данных представлены как Class объекты от java.lang. Документация класса.

12
задан bruno 20 June 2018 в 14:56
поделиться

7 ответов

Это неприятный вопрос на собеседовании. Я почти уверен, что они ищут ответ Object , а не null . null не является классом. Когда getSuperClass возвращает null , это означает, что «суперкласса нет». null - это просто специальное значение, которое может иметь ссылка. Если бы null был классом, вы могли бы создавать экземпляры объектов типа null . Также не имеет смысла присваивать null ссылке любого другого типа.

32
ответ дан 2 December 2019 в 03:14
поделиться

В java java.lang.Object является родителем (корнем) всех других объектов и не имеет предшественника.

Null вообще не является объектом, он указывает на отсутствие объекта (нулевая ссылка).

См. также JLS Глава 4

6
ответ дан 2 December 2019 в 03:14
поделиться

Object является суперклассом всех классов, а null является объектной ссылкой

0
ответ дан 2 December 2019 в 03:14
поделиться

Я думаю, что класс Object - это ответ.

из javadoc.

new Object().getClass().getSuperClass()

Если этот класс представляет либо класс Object, либо интерфейс, либо примитивный тип, либо void, то возвращается null. это не значит, что null является суперклассом.

Если null - это класс, я думаю, что это должен быть Null. null не является классом.

8
ответ дан 2 December 2019 в 03:14
поделиться

Помните, что класс Class является сам классом. Итак, когда вы вызываете c.getClass () , вы получаете обратно экземпляр класса Class . Так как не существует суперкласса объекта , метод getSuperClass () не может ничего вернуть, поэтому он возвращает null .

1
ответ дан 2 December 2019 в 03:14
поделиться

Вы не можете преобразовать объект Null к другим примитивным типам и не наследуете его. Класс верхнего уровня в Java - это Object.

1
ответ дан 2 December 2019 в 03:14
поделиться

Плохо сформулированный вопрос. Только "простой" ответ является правильным ответом на вопрос. Остальные просто сбивают с толку.

0
ответ дан 2 December 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: