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

Classe abstrata vs Composição

No caso da herança da classe Terceirizado para Funcionario, a solução para aplicar o princípio de Liskov foi utilizar composição. O exercício seguinte ao vídeo, diz que "Classe abstrata, nesse caso, não resolveria o problema"

Eu imaginei um cenário em que fosse criada uma classe abstrata Pessoa (similar a classe DadosPessoais), e as classes Terceirizado e Funcionario herdariam de Pessoa. Assim os métodos mais específicos como "promover" estariam definidos apenas na classe Funcionario.

O uso de classe abstrata dessa forma não atenderia o princípio de Liskov? Qual seria a vantagem em utilizar composição?

1 resposta
solução!

Oi Anderson,

Utilizar uma classe abstrata como você citou também resolveria o problema sem gerar efeitos colaterais.

O problema é que a herança acaba gerando um acoplamento entre a classe base e suas classes filhas, e devemos sempre tomar cuidado quando o código da classe base for alterado, verificando se não gerou um efeito colateral indesejado nas classes filhas.

Bons estudos!