Boa noite,
Fiquei com um pouco de dúvida em relação à vantagem da reescrita. Não percebi a grande diferença de colocar 2 getBonificacao na classe mãe e na filha ao invés de apenas alterar o nome do método da classe filha.
Obrigado por ler.
Boa noite,
Fiquei com um pouco de dúvida em relação à vantagem da reescrita. Não percebi a grande diferença de colocar 2 getBonificacao na classe mãe e na filha ao invés de apenas alterar o nome do método da classe filha.
Obrigado por ler.
Olá Diego,
A vantagem em relação a reescrita está em relação a ter um comportamento especifico para a classe filha. No caso a classe Funcionario tem um comportamento geral, e quando o Gerente estende da classe Funcionario, a classe Gerente herda todos os comportamentos da classe Pai. Logo ao chamar o getBonificacao sem a reescrita irá trazer o comportamento geral, mas neste caso queremos colocar um valor diferenciado para a bonificação do gerente que é diferente da de Funcionário, por isso reescrevemos o comportamento. A vantagem é manter o mesmo nome do método. Talvez não fique claro pois o exemplo é simples, mas imagine que num sistema maior, onde tenhamos vários classes filhas, Gerente, sub-gerentes, coordenador, auxiliar ...., e tivermos que escrever um método diferente para buscar a bonificacao? Na pratica você chamar getBonificacao() sem se preocupar se é gerente ou não, você quer apenas que traga a bonificação sem se preocupar com a regra que foi implementada.
Bom, espero ter esclarecido, beleza?