Bonjour,

J'ai une problème de compréhension d'héritage.

Voici mon code
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
class Animal {
    public String Am(int x) { return "i";}
    }
 
class Dog extends Animal {
    public int Am(long x){
        return 1;
    }
}
public class Chien extends Dog{
    public int Am(char x){
        return 2;
    }
    public static void main(String [] args) {
        Chien f = new Chien();
        System.out.print(f.Am(0));
    }
}
L'affichage est i pourtant il s'agit d'un overload alors on doit se baser sur la référence (chien) ! Déjà, même s'il s'agit d'un override l'objet est aussi chien.

Merci d'avance pour vos explications.