Класс объекта как суперкласс в Java

Почему класс объекта является суперклассом в Java?

13
задан bluish 1 March 2011 в 08:18
поделиться

5 ответов

Это хороший вопрос. Java решила сделать один класс конечным родительским классом для всего, чтобы был простой способ передать любой произвольный объект, без необходимости знать его тип (т. Е. Вы можете использовать объявленный тип Object для ссылки на каждый отдельный элемент в системе типов, даже на примитивы, использующие свои классы-оболочки). Однако существуют языки ООП, такие как C++, где нет универсального базового класса, как в Java. Еще одно преимущество наличия универсального базового класса заключается в том, что логика, имеющая дело с суперклассом, не должна быть специальной для классов верхнего уровня (за исключением универсального базового класса, Самого Объекта).

16
ответ дан 1 December 2019 в 22:06
поделиться

Классы Java (неявно / явно) расширяет Объект по следующим причинам:

  • Java должна работать на каждой существующей платформе (будь то мобильная версия, Windows, Linux и т. Д.), И написание огромного количества кода для работы на каждой платформе должно было стать миссией . Следовательно, Java создала native . Таким образом, все объекты регистрируются как собственные объекты, которые JVM может понимать и выполнять. Не забывайте, что JVM написана на C ++ (независимо от платформы, на которой она выполняется).
  • Для сборки мусора метод finalize вызывается JVM, когда объект не нужен.

Остальные уже упоминались здесь.

1
ответ дан 1 December 2019 в 22:06
поделиться

В верхней части my head

  1. Определение «Object» в качестве корневого класса гарантирует, что виртуальная машина может полагаться на интерфейс, предоставляемый для служебных методов, таких как equals, clone, hashcode и т. д.

  2. Сборщик мусора может гарантировать выполнение всего, что пользователь считает согласованным. в методе finalize

1
ответ дан 1 December 2019 в 22:06
поделиться

Он предоставляет шаблон для всех производных объектов, которые создают программисты. Ключевые функции, которые могут потребоваться для каждого определяемого пользователем объекта, легко доступны доступен таким образом.

  • Блокировка объекта (для решения проблем параллелизма)

  • Клонирование

  • Генерация хэш-кода

Назовем наиболее важные из них.

1
ответ дан 1 December 2019 в 22:06
поделиться

Это то, что мы называем аксиомой объектно-ориентированного программирования в Java. Каждая абстракция в вашем коде - это объект. Он содержит несколько вещей, которые применимы к каждому кусочку информации, которую вы используете в своем коде:

  • равно методам и hashCode для установления теории равенства в рамках данной абстракции. (см. соответствующий javadoc );
  • toString для представления объекта в удобочитаемом (возможно, только программистском) формате (потому что большинство из нас все еще использует дисплеи и клавиатуры);
  • getClass для обеспечения возможности отражения в данной абстракции
  • некоторые методы для организации объектно-ориентированной среды выполнения (сборка мусора, синхронизация и т. д.).

Если вы изучаете Java, вам лучше изучить раздел «Наследование» любой книги, которую вы используете, а затем попытаться ответить на этот вопрос самостоятельно.

4
ответ дан 1 December 2019 в 22:06
поделиться
Другие вопросы по тегам:

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