De um modo geral, todos os sistemas que utilizam herança apresentam os problemas acima.
Embora a herança, sendo uma das características principais de uma linguagem OO e esteja nela naturalmente enquadrada, providenciando alguma transparência no processamento de objectos (através, por exemplo, de polimorfismo de inclusão), não se adapta bem a outras situações, como sejam os casos em que um programa não sabe à partida que objecto deve criar. Nestes casos torna-se necessária a intervenção de um agente externo para instanciar as classes apropriadas. Outro problema é o da contaminação do código de uma classe por parte do código de controlo que se esteja a utilizar (e.g., introdução de primitivas de sincronização num método).
Note-se que nesta discussão não entraram pormenores do funcionamento dos sistemas apresentados, mas tão só acerca do modo de funcionamento utilizando herança.