0
votes

Quelle est la différence entre ce genre d'instanciation?

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: xxx

Quelle est la différence entre ce type d'instanciation ? xxx

et xxx


2 commentaires

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.


3 Réponses :


1
votes

Ils sont essentiellement identiques, mais le compilateur traite étudiant en tant que personne sans aucune information de type de la classe de béton employé


2 commentaires

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é et cela fonctionnera sans classcastexception. Vous voudrez peut-être en savoir plus sur le polymorphisme.



1
votes

C'est fondamentalement la même chose, mais la différence est que:

1- dans la première déclaration: xxx

ici étudiant 'T Accès Employee Classe Spécifique Méthodes ou Attributs Comme c'est une personne objet qui contient un employé < / code> instance.

2- mais dans le second: xxx

ici étudiant peut bénéficier des deux Employee et Personne Attributs et méthodes.

Vérifiez Polymorphisme Oracle Docs Pour une lecture supplémentaire sur Polymorphisme dans Java .

Exemple:

Nous pouvons voir que dans cet exemple, où nous utilisons integer et objet classes : xxx

ceci est A Live Démo de travail pour que vous puissiez voir cela.


0 commentaires

-1
votes

suivi est la différence dans les deux instanciations.

(1) Student de la personne = nouvel employé ("Dove", "Femme", 0);

Dans cette instanciation Student est un objet de la personne personne de sorte qu'il ne peut pas accéder à Employee Classe spécifique Méthodes ou attributs .

(2) Étudiant Employé = Nouveau employé ("Dove", "Femme", 0);

ici, dans la deuxième instanciation Student peut accéder à Employee Classe spécifique méthodes et attributs ainsi que Personne classe parce qu'il s'étend dans employé classe.

Ceci est la différence de base dans ces deux déclarations.


0 commentaires