Bonjour,
J'ai 3 classes :
GrandMere et Mere(extends GrandMere) et Fille(extends Mere), dont chacune possède une méthode int somme () qui retourne une telle valeur.
Je voudrais appeler la méthode de la classe "GrandMere" par la classe "Fille", j'ai utilisé ce syntaxe mais il a envoyé le résultat de la classe "Mere" et non pas celle de classe "GrandMere" :Classe GrandMere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public int res3=((GrandMere)(this)).somme();
Classe Mere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class GrandMere { public int x=2; public GrandMere () { System.out.println("Bonjour de GrandMere "); } public int somme () { return 1; }
Classe Fille :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class Mere extends GrandMere{ public float x=2F; public Mere () { System.out.println("Bonjour de Mere "); } public int somme () { return 2; }
Résultat obtenu :
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 public class Fille extends Mere{ public double x=10.50; public int res1=somme(); public int res2=super.somme(); public int res3=(Mere)(super.somme(); public int somme () { return 3; } public static void main(String [] args) { Fille f=new Fille (); System.out.println(" méthode de la classe Fille" + f.res1 + " ,méthode de la classe Mere" + f.res2 + " ,méthode de la classe GrandMere); } }
méthode de la classe Fille 3, méthode de la classe Mere 2, méthode de la classe GrandMere 2 à la place de 1 !!
Merci d'avance.
Partager