Bonjour,

J'ai une question à propos des mécanismes employés par Java dans le cadre de l'utilisation de méthodes de classes dans des classe héritées.

J'ai une première classe A qui définit une méthode d'instance afficher :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public class A {
  public void afficher() {
    System.out.println("méthode de A");
  }
}
puis je créé une deuxième classe, héritée de la première :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public class B extends A {
  public void afficher() {
    System.out.println("méthode de B");
  }
}
jusque là, pas de problème. Lorque j'écrit le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
A a;
a = new A();
a.afficher();
a = new B();
a.afficher();
on obtient bien :
"méthode de A"
"méthode de B"

Mon problème est que lorsque je rajoute le qualificatif static devant les méthodes afficher, le même code produit les texte :
"méthode de A"
"méthode de A"

et je ne comprend pas pourquoi. En quoi la notion de méthode de classe est-elle liée avec la notion de classe héritée ?

Merci d'avance.