Enunciado
Considere o trecho de código Java exibido a seguir. public class Main { static int m1(int x, int y) { return x + y; } static double m1(double x, double y) { return x * y; } public static void main(String[] args) { int a = m1(20, 3); double b = m1(3.56, 1.01); System.out.println("int: " + a); System.out.println("double: " + b); } } A execução desse código produz
Alternativas
- A)
um erro de sintaxe, pois há dois métodos com o mesmo nome.
- B)
um erro de execução, pois há incompatibilidade de tipos.
- C)
a exibição das linhas double: 23.0 double: 3.5956
- D)
a exibição das linhas int: 23 int: 4
- E)
a exibição das linhas int: 23 double: 3.5956
Gabarito e comentário
Resposta correta: E
As assinaturas distinguem os métodos pelos tipos dos parâmetros. A chamada com inteiros soma 20 e 3; a chamada com double multiplica 3,56 por 1,01.