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" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
public int res3=((GrandMere)(this)).somme();
Classe GrandMere :
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 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 Mere extends GrandMere{
	public float x=2F;
public Mere ()
{
	System.out.println("Bonjour de Mere ");
}
 
public int somme ()
{
	return 2;
}
Classe Fille :
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);
 
	}
}
Résultat obtenu :
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.