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

Dúvida no Ex. 7 da Aula 3 - Classes Abstratas

Boa madrugada senhores, com relação ao exercício ele roda liso porém não entendi a didática da questão. Porque eu invocaria um método dentro de outro sendo que sou obrigado a implementar ele nas classes filhas? A ideia era eu entender que mesmo assim tenho que implementar o método?

Obrigado!

2 respostas
solução!

Oi André,

a ideia é que, usando esse recurso, você pode ter um algoritmo base, que é igual para todas as implementações, descrito apenas na classe mãe. Aí, se cada filha tem particularidades sobre uma partezinha do algoritmo, cada uma fica responsável por fazer apenas essa pequena parte.

Então, usando o exemplo do exercício, considere que o código do mostra é sempre imprimir na tela o nome, o endereço, o cpf,... um monte de dados! Mas a parte da bonificação varia de filha para filha e, se eu colocasse a conta direto no método mostra ela ficaria irreal para vários casos.

Dado esse cenário, temos duas possibilidades: 1. Reescrever o método mostra em cada uma das filhas, calculando a conta certa. 2. Chamar o método getBonificação, que é o responsável por fazer essa conta.

O exercício tinha a intenção de mostrar que, como o cálculo da bonificação é diferente para cada classe filha, não vale a pena a mãe ter uma implementação dele... mas, como sabemos que todo objeto que é um funcionário vai, obrigatoriamente, ter uma implementação do getBonificacao, podemos confiar que o mostra estará fazendo o cálculo correto, de acordo com o objeto instanciado.

Fez sentido?

Oi Cecilia, sim! Fez todo sentido!!

Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software