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

Polimorfismo x override x abstract

Fiquei com uma dúvida no método getbonificacao.

Em um primeiro vídeo nico diz que pode usar o método getbonificacao passando uma referência de funcionário como parâmetro em um método e no momento da execução ele iria identificar se o objeto era do tipo gerente, design ou outro por eles serem filhos da classe mãe definindo o polimorfismo.

Em outro momento ele disse que poderia usar o override para sobrescrever o método getbonificacao caso ele tivesse uma implementação diferente.

Depois ele disse que caso o método getbonificacao tenha uma corpo diferente que ele poderia colocá-lo como abstract na classe pai e que então ele poderia implementa-los da forma que quisesse dentro de cada classe filha.

No meu entendimento, tanto usando override, abstract ou o polimorfismo (como passando um objeto genérico tipo funcionário dentro do método como parâmetro eles iria entender que serão a bonificação do gerente ou outro tipo de funcionário) vai funcionar.... Certo?

O que eu não entendi é qual a vantagem ou jeito correto de fazer essa implementação.

Ou se não existe um jeito correto e se ele só mostrou 3 formas de fazer a implementação.

Obrigado.

2 respostas
solução!

você vai usar override se quiser mudar a implementação do método getBonificacao. Vai usar abstract para forçar os filhos a implementarem o método getBonificacao. Vai usar polimorfismo quando quiser trabalhar com instâncias filhas onde cada uma pode ter (ou não) o método getBonificacao. Vai depender muito de caso para caso.

Cara sensacional sua explicação! Muito obrigado!