Bom dia Pessoal,
Recentemente surgiu uma duvida sobre SobreCarga/Overloading.
Analisamos o código a seguir
/*Exemplo em código
Podemos citar como exemplo uma função f aplicada aos parâmetros reais a e b, onde, dependendo dos tipos dos parâmetros, podemos ter a execução da primeira ou da segunda função, caracterizando o polimorfismo ad-hoc de overloading.*/
public class Aritmetica{
public static int f (int x, int y) {
return x+y;
}
public static double f (double x, double y) {
return x*x + y*y;
}
}
class Testa{
public static void main(String[] args){
double a=1.2;
double b=3.5;
System.out.println(Aritmetica.f(a,b));
// Resulta 13.9 que é igual a
// 1.2 * 1.2 + 3.5 * 3.5
}
}
//Fonte http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa%C3%A7%C3%A3o%29
Então teremos usado a função número dois ou a função no caso de minhas variaveis ser double, correto?
public static double f (double x, double y) {
return x*x + y*y;
}
Na verdade o que acontecerá ser minha variavel for um float por exemplo?
Não cheguei a fazer o teste na prática por que minha duvida é a seguinte como a JVM trata a informação para retornar a função correta, isso identificando a função de sobrecarga correta.
