Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O uso da palavra THIS e SUPER

Boa noite. Eu usei as duas palavras na classe Gerente como exposto abaixo e as duas maneiras me retornaram o mesmo valor. Qual o motivo para o uso da palavra super nesse caso, sabendo que obteremos o mesmo resultado ?

public double getBonificacao() {
        return super.getBonificacao() + super.getSalario();
    }
public double getBonificacao() {
        return super.getBonificacao() + this.getSalario();
    }
1 resposta
solução!

this.getSalario() -> Vai pegar o método getSalario sobrescrito de sua classe

super.getSalario() -> Vai pegar o método getSalario da sua super classe sem passar pelo método sobrescrito de sua classe

Exemplo:

Dando como exemplo o seguinte código:

class A{
   public int getSalario(){ return 1; }
}

class B extends A{
   @Override
   public int getSalario(){ 
      int valor = super.getSalario();
      return 1 + valor;
   }

  public void teste(){
    this.getSalario() // Retorno será 2
    super.getSalario() // Retorno será 1
 }

}

Se na classe B tivermos um método de teste que chame this.getSalario() o retorno seria 2, e o super.getSalario o retorno seria 1, pois não passaria pelo método sobrescrito

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software