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  ");
    }
 
}

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();
 
    }
 
}
affichage:
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
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