C'est peut-être une question de débutant mais je pense que ce sera utile pour certains débutants.
Ma question est la suivante: p> Quelle est la différence entre ce type d'instanciation ? p> et p>
3 Réponses :
Ils sont essentiellement identiques, mais le compilateur traite étudiant code> en tant que personne code> sans aucune information de type de la classe de béton
employé code> p>
Mais en même temps, il traite la personne étudiante en tant qu'employé, je suis un peu confus!
@Ghaithbriki Vous pouvez le jeter à Employé Code> et cela fonctionnera sans classcastexception. Vous voudrez peut-être en savoir plus sur le polymorphisme.
C'est fondamentalement la même chose, mais la différence est que:
1- dans la première déclaration: p> ici 2- mais dans le second: p> ici Vérifiez Exemple: strong> P> Nous pouvons voir que dans cet exemple, où nous utilisons ceci est A Live étudiant code> 'T Accès
Employee Code> Classe Spécifique
Méthodes CODE> ou
Attributs CODE> Comme c'est une personne code> objet code> qui contient un
employé < / code> instance. p>
étudiant code> peut bénéficier des deux
Employee code> et
Personne code> Attributs et méthodes. P>
Java Code> Strong>. p>
integer code> et
objet code> classes : p>
suivi est la différence dans les deux instanciations. P>
(1)
Dans cette instanciation (2)
ici, dans la deuxième instanciation Ceci est la différence de base dans ces deux déclarations. P> Student de la personne = nouvel employé ("Dove", "Femme", 0); Code> P>
Student code> est un objet de la personne code> personne code> de sorte qu'il ne peut pas accéder à
Employee code> Classe spécifique
Méthodes code> ou
attributs code>. p>
Étudiant Employé = Nouveau employé ("Dove", "Femme", 0); Code> P>
Student code> peut accéder à
Employee code> Classe spécifique
méthodes code> et
attributs code> ainsi que
Personne code> classe parce qu'il s'étend dans
employé code> classe. P>
Le type de variable cible est la seule différence. L'utilisation du type d'abstrait vous limite à utiliser uniquement l'API définie par elle.
Disons que votre classe d'employé fournit une méthode de votre classe de personne. À moins que vous n'ayez monté votre objet à un objet employé, votre première instanciation ne sera pas en mesure d'utiliser cette méthode, car elle est déclarée être une personne et se limite aux possibilités de la personne.