Polymorphisme qui change les arguments des méthodes
Bonjour pouvez m'expliquer ce polymorphisme avec type en augment au méthode:
voila 3 classes:
Code:
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:
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:
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 ");
}
} |
Code:
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();
}
} |
affichage:
Code:
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 |
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
avec agument type différent