Bonjour, je suis pour le moment entrain de débuter la programmation en Java à l'aide d'un livre comme il se doit et malgré mes relectures, je pense que ces commentaires (qui viennent du livre) sont incorrects :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Object o1, o2;
String ch1 = "...", ch2 = "...";
o1 = ch1; o2 = ch2;
...........
o1.equals(o2) // utilise equals de object
o1.equals(ch2) // utilise equals de object
ch1.equals(o2) // utilise equals de string
ch1.equals(ch2) // utilise equals de string
Pour la première instruction par exemple, je déduis :
- On regarde le type de o1 (Object) et on cherche la signature de la meilleure méthode (boolean equals(Object))
- A l'exécution o1 référence un String et comme la classe String redéfinit la méthode equals identiquement (même signature), on utilise equals de String et non de Object.

Impossible de trouver mon erreur en cherchant, j'ai même refais le test avec des classes que j'ai créer et j'arrive à ma conclusion...