Bonjour,

je lis dans un ouvrage "Programmer en JAVA " Claude Delannoy Editions Eyrolles 2008 p 207 ceci

"Remarques
1 Une méthode de classe (static) ne peut pas être redéfinie dans une classe dérivée. Cette restriction va de soi puisque c’est le type de l’objet appelant une méthode qui permet de choisir entre la méthode de la classe de base et celle de la classe dérivée. Comme une méthode de classe peut être appelée sans être associée à un objet, on comprend qu’un tel choix ne soit plus possible."

Pourtant voici le code suivant qui semble démentir cela

Aurais-je mal compris ? Merci pour votre avis

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
25
26
27
28
29
30
31
32
33
34
35
36
 
package heritage;
 
class Ca
{
	public static int thode (int i,int j)
	{
		System.out.println("Voici la methode static de Ca : " + i + " " +  j);
		return i+j;
	}
}
 
 
class Cb extends Ca
 
{
	public static int thode (int i,int j)
	{
		System.out.println("Voici la methode static de Cb : " + i + " " +  j);
		return i+j;
	}
}
 
 
public class methode_static {
 
	public static void main(String[] args) {
		Ca ca = new Ca();
		int retour = ca.thode(12,13);
		System.out.println(retour);
 
		Cb cb = new Cb();
		int retour2 = cb.thode(78,79);
		System.out.println(retour2);
		}
}
Résultat :

Voici la methode static de Ca : 12 13
25
Voici la methode static de Cb : 78 79
157