Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Esclarecimento sobre herança

Quando temos heranças por exemplo varias classes extends Funcionario, sendo que Funcionario tem um método getBonificacao. Se apenas algumas classes tiver implementação específica desse método nós os sobrescrevemos nessas respectivas classes e as demais continua usando a implementação da classe mãe, mas se todas as classes que extends Funcionario tiver uma implementação específica do getBonificacao, na classe funcionário o transformamos em abstract. gostaria de saber se meu raciocínio está correto

1 resposta
solução!

Fala Erick, tudo bem?

Depende muito da regra de negócio.

Se quer obrigar que todas as subclasses sem exceção implementem tal método, então pode seguir sim com seu raciocínio, tornando-o abstract.

Porém, vale lembrar que, assinando ao menos um método da classe como abstract, automaticamente a classe deverá também ser abstract. Isto implica em não poder "dar" new na classe pra chamar seu construtor, ou seja, não pode instanciá-la. No exemplo citado, ao tornar o método getBonificacao() abstract, não poderá criar objetos do tipo Funcionário.