FC ConcursosFC Concursos

Questão FC373276

Considere a classe Java abaixo. public class Cliente { public Cliente() { } public Cliente(int a, int b) { } public void calcular(int a, int b) { } public int calcular(int a, int b

Linguagens de Programação

FCC · 2019

Considere a classe Java abaixo.


public class Cliente {
    public Cliente() {
    }
    public Cliente(int a, int b) {
    }
    public void calcular(int a, int b) {
    }
    public int calcular(int a, int b) {
        return 1;
    }
    public double comparar(int a, float b) {
        return 0;
    }
    public double comparar(double a, float b) {
        return 1;
    }
}


No que se refere à sobrecarga de métodos,

  1. todos os métodos foram sobrecarregados adequadamente e a classe compilará sem erros.
  2. ocorrerá um erro no método comparar, pois retorna o mesmo tipo de dado (double).
  3. ocorrerá erro no método Cliente, pois não foi definido um tipo de dado de retorno, nem mesmo void.
  4. ocorrerá um erro no método calcular, pois, apesar de retornos diferentes, recebem a mesma quantidade e tipo de parâmetros.
  5. há erro no atributo de visibilidade dos métodos, pois devem ser todos private ao invés de public.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A alternativa aponta corretamente que haverá erro em tempo de compilação no método calcular. Em Java, a sobrecarga exige que métodos com o mesmo nome apresentem assinaturas distintas dentro da mesma classe.

Por definição, a assinatura de um método é composta pelo nome e pela sequência de tipos (e ordem) dos parâmetros. O tipo de retorno não faz parte da assinatura em Java, portanto não resolve ambiguidade entre métodos.

No exemplo, existem dois métodos chamados calcular que recebem exatamente os mesmos parâmetros (dois int). Como suas assinaturas coincidem, a sobrecarga é inválida e o compilador sinaliza erro, mesmo que os retornos sejam diferentes.

Para corrigir, é necessário alterar a lista de parâmetros (por tipo ou ordem) ou renomear um dos métodos, já que apenas mudar o tipo de retorno não é suficiente.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo