Considerando que a herança aumenta o acoplamento entre as classes envolvidas, que existe toda a complexidade mencionada no princípio de Liskov, que podemos desaproveitar código com composição e que podemos obter o polimorfismo com interfaces, em quais situações a herança pode ser mais adequada?