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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?