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.