1
resposta

Sobrescrita e herança

Eu acho meio estranho esse comportamento da Linguagem uma vez que a sobrescrita do DiretorTI não esta implicito. Simplesmente ele criou uma nova classe herdando de diretor o que na pratica todo o comportamento deveria ser idêntico visto que não esta explicito que há um "overrride" do método GetBonificacao().

1 resposta

Oii Leonardo, tudo bem?

Em Orientação a Objetos, quando temos uma classe filha (no caso, DiretorTI) que não sobrescreve um método da classe pai (Diretor), ela herda o comportamento do método da classe pai. Isso é chamado de herança.

No seu exemplo, a classe DiretorTI não tem uma implementação própria do método getBonificacao(), então ela herda a implementação da classe Diretor, que é a classe pai mais próxima. A classe Diretor, por sua vez, sobrescreveu o método getBonificacao() da classe Funcionario, retornando 200 em vez de 100.

Por isso, quando você instanciou um objeto DiretorTI e chamou o método getBonificacao(), ele retornou 200, que é o comportamento herdado da classe Diretor.

Um abraço e bons estudos.