Bonjour pouvez m'expliquer ce polymorphisme avec type en augment au méthode:
voila 3 classes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package poly; abstract class A { public void affiche(double r) { System.out.println("Je suis dans A nbr est " + r); } public void affiche() { System.out.println("Je suis dans A "); } }
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 package poly; public class B extends A { public void affiche(long l) { System.out.println("Je suis dans B et nbr est " + l); } public void affiche() { System.out.println("Je suis dans B "); } }
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 package poly; public class C extends A { public void affiche(int d) { System.out.println("Je suis dans c et nbr est " + d); } public void affiche() { System.out.println("Je suis dans c "); } }
affichage:
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 package poly; public class Main { public static void main(String[] args) { // A a = new A(); B b = new B(); C c = new C(); int i = 7; double d = 5.4555; long l = 25555655; c.affiche(i); System.out.println("************* a=c**********"); A a; a = new C();// a est un C???? a.affiche(i);// pourquoi c'est la méthode de A qui est appelée et d'après le sous casting implicite ça doit êtres la méthode de C ?? a.affiche(); } }
je comprends pas la ligne (1) on devrait avoir "Je suis dans c et nbr est 7" on a la meme méthode dans chaque classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Je suis dans c et nbr est 7 ************* a=c********** Je suis dans A nbr est 7.0 (1) Je suis dans c
avec agument type différent
Partager