Contração é uma uma variante de herança onde a subclasse elimina métodos da superclasse com o objetivo de criar uma "classe mais simples". A eliminação pode ocorrer pela redefinição de métodos com corpo vazio. O problema com este mecanismo é que ele viola o princípio da substituição, pois a subclasse já não pode mais ser utilizada em todos os pontos onde a superclasse poderia ser utilizada.
Se a contração parece ser uma solução adequada em uma hierarquia de classes, provavelmente a hierarquia deve ser re-analisada para detecção de inconsistências (problema pássaros-pinguins). De modo geral, o mecanismo de contração deve ser evitado.
©
Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP