Différence Entre le Type d'objet et le Type de Référence


J'étudiais le polymorphisme de "Head First Java" et je suis arrivé à ce concept. Quelqu'un peut-il l'expliquer avec un exemple?

Le compilateur vérifie la classe de type de référence-pas le type d'objet.

Alors, quelle est la différence entre le Type de référence et le Type d'objet?

Author: Joachim Sauer, 2013-05-24

2 answers

Je ne pense pas que leur utilisation de "type d'objet" et de "type de référence" soit standardisée, mais voici mon interprétation.

Considérez ce code:

Object o = new Integer(3);

Le référence o est de type Object. L'objet auquel il fait référence est de type Integer.

De Sorte que le "type de référence" serait Object " et le "type d'objet" serait Integer.

Ce qui rend cela confus, c'est qu'il y a le terme (standardisé, officiel) "reference type " qui encapsule types qui peuvent être référencés. En Java qui inclut toutes les classes, énumérations, interfaces, tableaux. Il exclut uniquement les types primitifs (int,...).

 30
Author: Joachim Sauer, 2013-05-24 07:51:06

Ce que l'on entend par les termes est le suivant:

  • type d'objet (dans votre livre) = le type d'exécution réel du référent
  • type de référence (dans votre livre) = le type statique de la référence

Peut-être que certains trouveront plus facile à comprendre avec ces termes.

 6
Author: Bruno Reis, 2013-05-24 08:00:43