Bonjour dans ce morceau de code -question pour une certif scjp -
j'ai ce bout de code dont je n'arrive pas à expliquer la sortie
Logiquement pour moi la sortie c'est :
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 public class NombreMachine { public static void main(String[] args) { Integer wi1 = new Integer("420"); int i = 101; Integer wi2 = i * 420 / 101; if (wi1 == wi2) System.out.print(" =="); if (wi1.equals(wi2)) System.out.print(" egale"); float f = 1.23f; new NombreMachine().impression(f); } void impression(Float f) { System.out.println(" Float"); } void impression(double d) { System.out.println(" double"); } }
egale double
Et bien non, la sortie fait
egale double
Du coup je ne comprends plus, normalement à l'appel de
new NombreMachine().impression(f);
j'appelle Float, pourquoi va-t-elle m'appeller double ?
Franchement je ne vois pas.
Merci pour toute aide, je suis sûr que vos réponses aideront beaucoup de gens comme moi.
Bien à vous.
PS: Soit dit en passant, ne me demandez pas pourquoi le code est ainsi, c'est un examen de certif, c'est clair, je ne me casserai jamais la tête avec ce genre d'idioties, mais que voulez vous, les exams sont ainsi, et on a pas le choix.
Partager