Bonjour,
Je vais essayer de vous exposer mon probème simplement.
Dans une classe Principale, je récupère un objet de type Mere via une méthode d'une autre classe Creatrice, mais je voudrais caster celui-ci de sorte à l'avoir de type Fille (Fille hérite de Mere) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class Principale { public Principale() { Creatrice create = new Creatrice(); Fille objetRecupere = (Fille)create.getAttribut(); objetRecupere.setPere("Papa"); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Creatrice { private Mere attribut = null; public Creatrice() { this.attribut = "Maman"; } public Mere getAttribut() { return this.attribut; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Mere { private String nomMere = null; private setMere(String nomMere) { this.nomPere = nomPere; } private String getMere() { return this.nomMere; } }Bien évidemment, l'utilisation est bien plus complexe qu'il n'en paraît. Dans ce cas, je ne pas modifier les classes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Fille extends Mere { private String nomPere = null; private void setPere(String nomPere) { this.nomPere = nomPere; } private String getPere() { return this.nomPere; } }
- Mere
- Creatrice
Et je peux modifier les classes :
- Fille
- Principale
Avez-vous une idée de comment résoudre ce problème de cast ?
Je pensais faire un constructeur de Fille auquel on passe en paramètre un objet Mere mais je ne dois pas dupliquer (ou en tout cas éviter) l'objet. Enfin bon je vois pas trop comment faire![]()
Partager