Em Programação Orientada a Objetos, o princípio pelo qual
duas ou mais classes derivadas de uma mesma superclasse
podem implementar métodos que têm a mesma identificação
(assinatura), mas comportamentos distintos, especializados para
cada classe derivada, usando para tanto uma referência a um
objeto do tipo da superclasse, é denominado