SóProvas


ID
913804
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Programação
Assuntos

Analise a classe a seguir retirada de uma aplicação Java que contém as classes Empregado.java, Diarista.java e Start.java. A classe Start.java possui o método main:

package geral;
 public class Diarista extends Empregado{
   private int diasTrabalhados;
   public Diarista(int diasTrabalhados, int id, String nome, double valorReferencia) {
       super(id, nome, valorReferencia);
       this.diasTrabalhados = diasTrabalhados;
}
 public int getDiasTrabalhados() {
       return diasTrabalhados;
}
public void setDiasTrabalhados(int diasTrabalhados) {
       this.diasTrabalhados = diasTrabalhados;
}
@Override
 public double obterSalario(){
       return super.getValorReferencia() * diasTrabalhados;
}
 public double obterSalario(double percentualAcrescimo){
       double salario= this.obterSalario();
       double salarioReajustado = salario + salario * percentualAcrescimo /100;
       return salarioReajustado;
}
 public double obterSalario(double adicional, double desconto){
       return this.obterSalario() + adicional - desconto;
}
}

Analisando o código apresentado é possível concluir que

Alternativas
Comentários
  • a) Alternativa ERRADA. É possível criar diversos métodos com o mesmo nome, contanto que seus parâmetros sejam diferentes (na linguagem mais correta, equivale a dizer contanto que sua assinatura seja diferente). Esse conceito em Orientação a Objetos chama-se sobrecarga.

    b) Alternativa CORRETA. A classe Diarista estende a classe Empregado, que no exemplo podemos assumir que já possuia seu próprio método obterSalario(). Através da anotação @Override é explicitado que seu comportamento deve ser sobrescrito pelo da sub-classe (Diarista).

    c) Alternativa ERRADA. A instrução super passa estes valores para o construtor da super-classe (Empregado).

    d) Alternativa ERRADA. A instrução super.getValorReferencia() chama esse método da super-classe (Empregado.java), e não da classe Start.java.

    e) Alternativa ERRADA. Não confundir sobrescrita (@Override) com sobrecarga (conceito explicado acima).