Questão nº 29
Questão de Tecnologia da Informação · FCC TJ-CE 2022 (nº 29)
Considere este trecho de código Java:
```
public class Requerente {
protected String nome;
protected String processo;
protected double divida;
public double getAjuste() {
return this.divida 1.10;
}
// ...
}
public class RequerenteCorporativo extends Requerente {
int senha;
I
......
public double getAjuste() {
return this.divida 1.15;
}
// ...
}
```
Com base no código Java e nos conceitos de orientação a objetos, é correto afirmar:
- AO método `getAjuste()` nas duas classes é um exemplo de sobrecarga de métodos.
- BPara que o método `getAjuste()` seja herdado da classe `Requerente`, a lacuna I deve ser preenchida com `@Retention`.
- CPara que o método `getAjuste()` seja herdado da classe `Requerente`, a lacuna I deve ser preenchida com `@Inherited`.
- DPara permitir que o método `getAjuste()` seja uma sobrecarga do método herdado da classe `Requerente`, a lacuna I deve ser preenchida com `@Override`.
- EPara explicitar que o método `getAjuste()` é uma sobrescrita do método da classe-mãe `Requerente`, a lacuna I deve ser preenchida com `@Override`. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Em Orientação a Objetos, sobrescrita (override) ocorre quando uma subclasse implementa um método que já existe na sua superclasse, mantendo a mesma assinatura (nome, tipo de retorno e parâmetros), enquanto sobrecarga (overload) acontece quando há múltiplos métodos com o mesmo nome, mas com assinaturas diferentes (número ou tipo de parâmetros).
- (A) Incorreta: O método
getAjuste()emRequerenteCorporativotem a mesma assinatura (nome, parâmetros e tipo de retorno) do método emRequerente, caracterizando uma sobrescrita, não uma sobrecarga. - (B) Incorreta:
@Retentioné uma anotação que define por quanto tempo uma anotação será mantida, não tendo relação com a herança ou sobrescrita de métodos. - (C) Incorreta:
@Inheritedé uma anotação que indica que uma anotação de classe é herdada por suas subclasses, não controlando a herança de métodos diretamente. Métodos públicos e protegidos são herdados por padrão. - (D) Incorreta: O método é uma sobrescrita, não uma sobrecarga. A anotação
@Overrideé usada para indicar sobrescrita, não sobrecarga. A armadilha aqui é misturar o termo correto (@Override) com o conceito incorreto (sobrecarga). - (E) Correta: A anotação
@Overrideé utilizada para indicar explicitamente que um método na subclasse está sobrescrevendo um método da superclasse. Isso ajuda o compilador a verificar se a sobrescrita está correta (ex: mesma assinatura) e melhora a legibilidade do código.
Fonte: FCC TJ-CE 2022 Analista Judiciário - Especialidade Ciência da Computação - Área Sistemas da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.