A herança tem sido utilizada para conseguir chegar aos mais diversos fins. Os princípios que governam a sua acção são, no entanto, sempre semelhantes: a capacidade de se utilizar polimorfismo de inclusão para, por exemplo, especializar um objecto, sem alterar o resto do programa, alterando ou não a sua interface, ou, simplesmente, para separar a interface de um objecto da forma como ele responde a cada elemento dessa interface, i.e., do seu comportamento.
Exemplos da utilização de herança em projectos concretos podem ser
encontrados em alguns sistemas tais como o MSM [Guedes, 1994], Romance [Rodrigues & Veríssimo, 1993] e
POOM
[Silva et al., 1993], entre outros. Open
C++ [Chiba, 1993] também utiliza herança, embora de forma
diferente e com objectivos distintos. Este sistema será abordado
separadamente na secção 2.5, pois os seus princípios de
funcionamento encontram-se bastante próximos dos do trabalho proposto.
Nesta secção apenas será analisado com maior atenção o MSM, como
exemplo ilustrativo, uma vez que os problemas apresentados pelo uso de
herança são sempre semelhantes.