Как каждый класс наследуется классом Object? - PullRequest
0 голосов
/ 26 декабря 2011

Почему каждый класс в Java наследуется от класса, называемого java.lang.Object, даже если мы не extend это явно?

Что происходит за сценой?

Ответы [ 3 ]

1 голос
/ 26 декабря 2011

Это было дизайнерское решение, с которым разработчики Java пошли в глубь веков. Я считаю, что каждый объект поставляется с реализациями нескольких базовых методов (hashCode, equals, wait, notify), без необходимости их написания. Это имеет целый ряд преимуществ - наличие реализаций для hashCode и equals делает такие вещи, как Sets и HashMaps, хорошо работающими; Наличие реализаций для уведомления и ожидания значительно упрощает многопоточное программирование.

Что касается того, что происходит за кулисами, я думаю, вам нужно изучить исходный код компилятора или JVM. Однако в этом нет особого смысла. Большинство разработчиков Java довольны тем, что каждый объект является объектом - это одна из тех вещей, которые делают Java такой, какая она есть.

1 голос
/ 26 декабря 2011

Все классы в платформе Java являются потомками объекта. Класс объекта не имеет суперкласса, каждый класс имеет один и только один прямой суперкласс (одиночное наследование). В отсутствие какого-либо другого явного суперкласса каждый класс неявно является подклассом Object.

См. Javadoc

0 голосов
/ 26 декабря 2011

Ну, потому что каждый класс наследуется от Объект .Это избыточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...