J'ai essayé ce code surcharge méthode et je suis l'erreurMéthode surcharge d'erreur de type incompatible »montre avec flotteur, mais pas avec double
pas de méthode appropriée trouvée pour ajouter (à double, double)
Le code:
class Adder {
static float add(float a, float b) {
return a + b;
}
static int add(int a, int b) {
return a + b;
}
}
class TestOverloading1 {
public static void main(String[] args){
System.out.println(Adder.add(11.5, 11.5));
System.out.println(Adder.add(27, 21));
}
}
sur l'écriture, 11.5f dans params, cela fonctionne bien. J'ai compris les différences entre float et double de here et here. Alors, pourquoi Java prend-il les paramètres comme double type de données par défaut? La plus grande précision du double derrière un tel biais? Je suis conscient qu'il prend le double par défaut. Mais, je souhaite savoir quelle est la raison derrière cela?
parce que 11.5 est un double. vous pouvez également essayer avec: new Float (11.5) – Stultuske
@Stultuske Suggérer des gens à utiliser 'new Float (11.5)' est un mauvais conseil, pourquoi introduire un nouvel objet wrapper, quand utiliser un littéral float fera l'affaire. –
ce n'était pas vraiment un conseil, plus un indice que c'est une façon plus 'visible' de tester si pour un flotteur cela fonctionnerait – Stultuske