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
class A {
  A() {
    System.out.println("constructeur de A") ;
    qqChose() ;
  }
  private void qqChose() {
    System.out.println("appel de qqChose de A") ;
  }
}
class B extends A {
  B() {
    System.out.println("constructeur de B") ;
  }
  void qqChose() {
    System.out.println("appel de qqChose de B") ;
  }
}
public class Herit06 {
  public static void main(String [] args) {
    B b = new B() ;
  }
}
Affichage :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
constructeur de A
appel de qqChose de A
constructeur de B
Pourquoi à l'exécution il n'emploie pas la méthode qqChose() de la classe dérivée B, parce que la méthode dans la classe A est privée me direz-vous. C'est justement là que je coince. C'est une question d'examen à laquelle je n'ai pas su répondre. Merci à ceux qui pourront éclairer mes lanternes.