Неявное наследование работает в Java - PullRequest
0 голосов
/ 05 ноября 2011

Может кто-нибудь сказать мне, как неявное наследование работает внутри Java?
Что я имею в виду, если я создаю класс, как именно он расширяет класс Object в JVM?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 05 ноября 2011

Java заставляет наследовать каждый класс. Если вы явно не наследуете от класса, то по умолчанию Java предполагает, что вы наследуете от класса с именем Object, который мало что делает, но имеет несколько полезных методов:

  1. это означает, что каждый класс происходит от Object, поскольку любой класс, от которого вы наследуете, должен наследовать от чего-то, что может быть либо Object, либо чем-то, что унаследовано от чего-то и т. Д.
  2. концепция полиморфизма подразумевает, что вы можете хранить любой тип объекта в переменной, тип которой был Object
1 голос
/ 05 ноября 2011

По всем практическим причинам вы можете подумать, что class X { - это синтаксический сахар для class X extends Object { - вот и все.

1 голос
/ 05 ноября 2011

Помимо класса Object каждый класс в Java должен иметь суперкласс.

В неявном наследовании нет ничего особенного. Это просто синтаксический ярлык, который означает, что вам не нужно писать extends Object. На семантическом уровне неявное наследование работает точно так же, как и явное наследование.

На практике это означает, что каждый класс наследует определенные стандартные методы от Object ... если только эти методы не переопределены. Примеры включают equals(Object), hashcode() и toString(), которые часто переопределяются, и getClass(), которые не могут быть переопределены.

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