Pourquoi est-ce que chaque objet en Java implicitement étendre java.lang.La classe d'objet?

J'ai été la programmation en Java pour assez un certain temps, mais quand j'ai essayé d'expliquer ce qu'est un java.lang.Object classe est pour un ami, je ne pouvais pas venir avec plus qu'un simple one-liner:

Tous les objets en Java étendre java.lang.Object implicitement

Je n'étais pas très bien pourquoi il devrait le faire.

Donc, j'ai regardé le code source sur GrepCode, en espérant que je puisse trouver quelques indices. Maintenant, je sais ce qu'est un java.lang.Object est et ce qu'il fait, je veux savoir si il y avait une raison pour laquelle il a été conçu de cette façon.

Ma question subsiste: pourquoi chaque objet étendre java.lang.Object?

  • De sorte que vous pouvez en toute confiance Objet d'appel de méthodes sur un objet quelconque.
  • Quelqu'un a demandé de la fermer, s'il vous Plaît laissez-moi savoir ce que tu ne comprends pas? Désolé Si je ne suis pas clair.
  • N'est-ce pas un autre double question?...
  • J'étais confus au premier abord, mais vous êtes essentiellement de se demander pourquoi Java est en une seule enracinée hiérarchie de classe? (Par opposition à la possibilité que les choses descendre de quelques autres de la racine de la classe)
  • Chaque objet est une Object qu'il est utile d'avoir une fonctionnalité qui est commun à tous les objets.
  • J'ai voté pour le fermer car votre "Pourquoi chaque objet de la prolonger?" n'est pas claire. Il existe des méthodes sur l'objet, les méthodes qui sont disponibles pour chaque objet. Donc la réponse est tellement évidente qu'il doit y avoir quelque chose vous préoccupe et que quelque chose n'est pas clair.
  • Donc, il s'agit tout simplement d'une décision de conception, est-il plus que cela pour elle?
  • J'ai édité ma réponse.
  • Pourquoi? afin de garantir les classes d'Objet d'appel de méthodes.
  • Si votre question est "Pourquoi est-il implicite ?" alors la réponse est que Java est déjà gagner la course pour le niveau le plus détaillé de la langue, de sorte que l'ajout de "s'étend de l'Objet" pour tous les fichiers source n'était pas nécessaire.
  • Ma question est pourquoi ne était pas sur le plan de la syntaxe... ou pourquoi ne pas ajouter un autre 2 mots dans tous les fichiers source.
  • Basé sur tous les commentaires et les réponses, j'ai encore une question. Veuillez prendre un coup d'oeil à mon édité question.

InformationsquelleAutor codeMan | 2013-10-01