TransWikia.com

Sobrecarga de métodos (double e float)

Stack Overflow em Português Asked by Dr.G on December 1, 2020

Tendo 2 métodos com mesmo nome, porém os tipos são diferentes (double e float), a quantidade de parâmetro é a mesma, qual dos métodos o Java vai reconhecer primeiro e por quê?

One Answer

Depende de qual valor for usado na sua chamada. Se o valor for um float ou qualquer outro que seja automaticamente convertido para float, será o o método que recebe float, se o tipo do argumento da chamada do método for um double, chamará o método cujo parâmetro é um double.

Não existe isso de qual será chamado primeiro. Salvo a pergunta partir de uma premissa errada.

class Classe {
     void metodo(float x) {
        System.out.printf("Float %fn", x);
    }
     void metodo(double x) {
        System.out.printf("Double %fn", x);
    }
}
 
class Ideone {
    public static void main(String args[]) {
        Classe classe = new Classe();
        classe.metodo(1);
        classe.metodo(1.0);
        classe.metodo(1.0f);
    }
}

Veja funcionando no ideone. E no repl.it. Também coloquei no GitHub para referência futura.

Correct answer by Maniero on December 1, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP