106 votes

Pourquoi assigne-t-on une référence parentale à l'objet enfant en Java ?

Je pose une question assez simple, mais je suis un peu confus.

Supposons que j'ai une classe Parent :

public class Parent {

    int name;
}

Et avoir une autre classe Child :

public class Child extends Parent{

    int salary;
}

Et enfin ma classe Main.java

public class Main {

    public static void main(String[] args)
    {
        Parent parent = new Child();
        parent.name= "abcd";
    }
}

Si je crée un objet enfant comme

Child child = new Child():

Puis child peut accéder aux deux name and salary variables.

Ma question est la suivante :

Parent parent = new Child();

donne l'accès de seulement name de la classe Parent. Quelle est donc l'utilité exacte de cette ligne ?

 Parent parent = new Child();

Et aussi quand on utilise le polymorphisme dynamique, pourquoi la variable de la classe enfant n'est pas accessible après avoir fait cela ?

Parent parent = new Child();

-3voto

Thargor Points 860

Vous déclarez parent comme Parent, donc java ne fournira que les méthodes et attributs de la classe Parent.

Child child = new Child();

devrait fonctionner. Ou

Parent child = new Child();
((Child)child).salary = 1;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X