1
resposta

Sobre o exemplo Herança x Composição

Professor, no exemplo citado ao substituir a herança pela composição abrimos mão também do polimorfismo, não? Se eu quiser fazer um somatório de saldos de todas as contas vou ter que rodar dois loops. Seria arriscado se eu - sem abandonar o princípio de Liskov - criasse uma classe Conta e fizesse ContaComum e ContaEstudante herdarem dela apenas os métodos em comum? Desta forma o método rende() estaria apenas no filho ContaComum e não no pai Conta, o que evitaria o problema apontado originalmente.

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi Paulo, realmente usando composição inicialmente perdemos o polimorfismo. Mas uma forma de resolver isso é criar uma interface que obriga os métodos comuns e todo mundo implementa ela então no lugar de criar a classe Conta você criaria a interface Conta.

Espero ter ajudado, Abraços e bons estudos.