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

Exercício 05: Classes abstratas e interfaces

Transcrição de uma das respotas do exercício:

Uma solução para o código compilar é mover a implementação GetBonificacao de Arquiteto para PrestadorDeServicos.
Correta! Deste modo, a classe PrestadorDeServicos estará implementando a interface.

A classe PrestadorDeServicos é abstrata, como que vou mover a implementação de Arquiteto para ela se classes abstratas não permitem implementação??

E a classe Arquiteto herda da classe PrestadorDeServicos, então de uma forma ou de outra, eu vou ter que implementar GetBonificacao().

Achei confusa essa resposta da questão.

1 resposta
solução!

Olá Vitor!

A razão de mover a implementação do GetBonificação() para a classe PrestadorDeServicos é que todas as classes que derivem desta classe base, já tenham o método sem que necessite uma nova implementação.

Na verdade, classes abstratas não permitem ser instanciadas, mas seus métodos podem ser implantados sem problemas. Porém, se o método for abstrato, aí sim que não é permitido a implementação.

Para maiores informações do uso do modificador abstract tem um link da documentação.

Espero ter ajudado!