Na
programação orientada a objetos, o
polimorfismo permite que referências de tipos de
classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato). O termo
polimorfismo é originário do
grego e significa "muitas formas" (
poli = muitas,
morphos = formas).
O polimorfismo é caracterizado quando duas ou mais classes distintas tem
métodos de mesmo nome, de forma que uma função possa utilizar um
objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.