Bonjour à tous,

Je n'arrive pas bien à comprendre l'héritage avec une méthode privé, public et protected.

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
 
 
class A {
public void machin() { truc(); }
private void truc() {
System.out.println("truc de A");
}
}
 
class B extends A {
private void truc() {
System.out.println("Truc de B");
}
}
 
class Test {
public static void main (String [] args) {
A a = new A();
a.machin();
B b = new B();
b.machin();
a=b;
a.machin();
}
}
Si je mets ce code là, les résultats obtenus sont :

truc de A
truc de A
truc de A
Code suivant :

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 {
public void machin() { truc(); }
private void truc() {System.out.println("truc de A");
}
}

class B extends A {
public void truc() {
System.out.println("Truc de B");
}
}

class test {
public static void main (String [] args) {
A a = new A();
a.machin();
B b = new B();
b.machin();
a=b;
a.machin();
}
}
J'ai également le même résultat :

truc de a
truc de a
truc de a
Si quelqu'un pourrait m'expliquer comment puis-je comprendre le résultat obtenu. J'ai dû mal comprendre la façon de faire avec des champs non-public.

D'avance, je vous remercie.