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?
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
,...).
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.