Accès à la classe mère Java
Olal
Messages postés
7
Statut
Membre
-
Olal Messages postés 7 Statut Membre -
Olal Messages postés 7 Statut Membre -
Bonjour,
J'ai une petite question : en sachant qu'il n'est pas possible d'accéder aux variables private de la classe mère dans la classe fille, est-il possible d'accéder à ces variables par l'intermédiaire des getters/setters de la classe mère pour changer ces variables ?
PS : Je connais "Protected".
Merci d'avance pour vos réponses.
J'ai une petite question : en sachant qu'il n'est pas possible d'accéder aux variables private de la classe mère dans la classe fille, est-il possible d'accéder à ces variables par l'intermédiaire des getters/setters de la classe mère pour changer ces variables ?
PS : Je connais "Protected".
Merci d'avance pour vos réponses.
A voir également:
- Accès à la classe mère Java
- Jeux java itel - Télécharger - Jeux vidéo
- Pile carte mere - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Acces rapide - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Il faut bien distinguer : modifier la valeur, et modifier la variable.
Les setters sont fait, par définition, pour modifier la valeur de manière cohérente, tout en empêchant un accès direct à la variable, car sinon on pourrait faire n'importe quoi.
Mais ce qu'il faut bien comprendre, c'est que quand tu es dans la classe fille, tu n'as pas à connaître la structure interne de la classe mère, tu n'as pas à savoir quelles sont les variables privées que tu dois modifier. Pour modifier l'état d'un objet tu dois agir sur ses méthodes, pas sur sa structure (sinon ce ne serait plus du Java mais du C)
Les setters sont fait, par définition, pour modifier la valeur de manière cohérente, tout en empêchant un accès direct à la variable, car sinon on pourrait faire n'importe quoi.
Mais ce qu'il faut bien comprendre, c'est que quand tu es dans la classe fille, tu n'as pas à connaître la structure interne de la classe mère, tu n'as pas à savoir quelles sont les variables privées que tu dois modifier. Pour modifier l'état d'un objet tu dois agir sur ses méthodes, pas sur sa structure (sinon ce ne serait plus du Java mais du C)
Le but de l'encapsulation est d'interdire l'accès à ces variables, et c'est pour ça que l'on construit les getter pour lire les valeurs et les setter pour les modifier, mais on ne touche pas aux variables.
Ok merci. Avec le setter on touche bien indirectement à la variable non ?
Donc au final il est tout à fait possible depuis la classe fille de passer par les getters ou setters de la classe mère pour modifier ses valeurs (si on a pas la possibilité d'atteindre les variables autrement (avec protected entre autres)) non ?
Merci.
Donc au final il est tout à fait possible depuis la classe fille de passer par les getters ou setters de la classe mère pour modifier ses valeurs (si on a pas la possibilité d'atteindre les variables autrement (avec protected entre autres)) non ?
Merci.
En modifiant la valeur de la variable, on peut être amené à lui donner la référence d'un objet totalement différent, en particulier lorsque l'on manipule des objets immuables (les String par exemple).
Mais tout ceci est "transparent" puisque c'est encapsulé dans les getteurs/setteurs qui garantissent la cohérence des données (en tout cas, c'est leur rôle).