System.out.println("soma de byte");returnb1+b2;
}
publiclongsoma(longlg1,longlg2){
System.out.println("soma de long");returnlg1+lg2;
}
public double soma(double db1, double db2){
System.out.println("soma de double");returndb1+db2;
}
}
class TesteCalculadora{
public static void main(String args[]){
CalculadoraAmbiguacalc=newCalculadoraAmbigua();calc.soma(24,25);//aqui ele chama o metodo (long, long) não deveria se (byte, byte) ???
}
}
rmendes08
Não, pois constantes inteiras são do tipo int. Apesar do valor caber em um byte elas não são convertidas.
jpjcjbr
Boa tarde,
Quando você executa o código calc.soma(24, 25); você está passando dois inteiros como parametro, nós sabemos que os inteiros são maiores que os bytes então o método que tem dois bytes na assinatura nunca será chamado, o método a ser executado será um método com parametros de entrada que consigam “receber” inteiros, nesse caso o primeiro método seria o que recebe longs e em seguida seria o que recebe doubles.
Espero ter ajudado.
Flws
ludionei
perfeito, agora eu posso prosseguir meus estudos que vão longee…kkkkkkkkk