Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Super.getBonificacao vs this. ou vazio

Minha duvida é a seguinte, aqui no exemplo temos a seguinte opçao

public double getBonificacao() {
    return super.getBonificacao() + super.getSalario();
}

eu criei desta forma, sem o super. no getSalario().

qual seria a diferença de usar o super, ou usar o this. ou nao preencher nada, apenas chamar diretamente o metodo. obs.: Em todas as situações ele funciona da forma correta.

public double getBonificacao() {
    return super.getBonificacao() + getSalario();
}
2 respostas

Bom, primeiramente o super que dizer que você está usando algo da Super Classe ou Classe Mãe, então se você utilizar sem o super, quer dizer que você está usando seu próprio getSalario, que é específico de sua classe, o this é para demonstrar e dizer: Olha, esse salário é deste objeto, ou seja, é uma forma explícita de dizer que é um valor real da variável de instância do objeto (Da sua própria classe). No caso, o correto é usar o método super.getSalario, uma vez que possivelmente suas variáveis vão estar usando o acess modifier private.

solução!

José, complementando a explicação do Antônio:

O super. é utilizado quando você quiser se referir a um método da classe mãe, ou seja, da classe da qual a sua extende. Assim, se sua classe Gerente extends Funcionario (Gerente é um funcionário, ou Gerente herda de Funcionario), quando você acessar os métodos da classe Gerente chamando antes do nome do método a palavra super, significa que você está acessando o método da classe Funcionario.

public double getBonificacao() {
    return super.getBonificacao() + super.getSalario();
}

O método acima, não está chamando o método getBonificacao() e o getSalario() da classe Gerente, mas, sim, da classe Funcionario.

Em outras palavras, super quer dizer: "me dá o método da classe da qual você herda, da tua classe mãe".

Já o this é o contrário, ele diz: "eu estou chamando o método dessa classe (Gerente) em que estou" ou "ignore o método da classe mãe (Funcionario), me dá o dessa daqui (Gerente) mesmo".

Espero ter ajudado.

Abraço.