Bonsoir à tous.
Voilà j'aimerais bénéficier de votre expérience afin de solutionner un cas d'école que j'aimerais pouvoir résoudre proprement.
Je vous explique rapidement la situation, basique.
Une classe Personne:
et une classe qui en hérite, la classe PersonneDescendant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class Personne { protected String nom = ""; protected String prenom = ""; protected Ddate datenaiss = null; protected Ddate datedec = null; public Personne( String nom, String prenom, Ddate datenaiss, Ddate datedec) { this.nom = nom; this.prenom = prenom; this.datenaiss = datenaiss; this.datedec = datedec; } public String toString(){ return prenom+" "+nom+" est né(e) le "+datenaiss.toString() +((datedec == null)?".":" et est décédé le "+datedec.toString()+"."); } }
Comme vous pouvez le voir, en utilisant un cast de PersonneDescendant en Personne, j'aurais aimé pouvoir bénéficier de la méthode toString de la classe Personne pour l'affichage du père et de la mère, mais pourtant, cette méthode n'est pas celle appelée (?) et l'affichage se fait malgré tout de façon récursive: affichage des parents des parents ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class PersonneDescendant extends Personne implements Cloneable{ protected PersonneDescendant pere = null; protected PersonneDescendant mere = null; public PersonneDescendant(String nom, String prenom, Ddate datenaiss, Ddate datedec, PersonneDescendant pere, PersonneDescendant mere){ super(nom,prenom,datenaiss,datedec); this.pere = pere; this.mere = mere; } public String toString(){ Personne p = null; Personne m = null; Personne f = (Personne) this; if(pere!=null) {p = (Personne) pere;} if(mere!=null) {m = (Personne) mere;} return "Personne : "+f.toString()+"\n"+((pere!=null)?"- Père : "+p.toString()+"\n":"- Pas de père indiqué\n")+((mere!=null)?"- Mère : "+m.toString():"- Pas de mère indiquée"); } }
En d'autre mots, comment faire pour pouvoir appeler la méthode toString() des parents située dans Personne et surchargée par ces derniers, Peut etre que cette "remontée" dans l'héritage n'est pas permise par java ...
Si quelqu'un connaissait la/une solution à ce problème ou tout du moins une solution de détourner habilement le problème....
Merci @ vous !!
Partager