Ho scritto questo codice di provaPerché il cast implicito implicito in float piuttosto che double quando si richiama il costruttore?
public class ConstructorTestApplication {
private static String result;
public static void main(String[] args) {
ConstructorTest test1 = new ConstructorTest(0);
System.out.println(result);
}
private static class ConstructorTest {
public ConstructorTest(double param){
result = "double constructor called!";
}
public ConstructorTest(float param) {
result = "float constructor called!";
}
}
}
Il risultato è stato
float constructor called!
Perché il costruttore galleggiante chiamato piuttosto che il doppio costruttore? Questa parte della ricerca del metodo dinamico?
Ti aspettavi che il cast fosse raddoppiato? Se è così, perché? – Ridcully
Non mi aspettavo un modo o l'altro. La domanda è arrivata in classe e ho scritto il test per vedere ma non so perché il float ha la precedenza sul doppio. –
Non c'è alcuna ricerca di metodo dinamico qui. – EJP