El polimorfismo se presenta en diferentes formas. El polimorfismo de () significa que el mismo nombre tiene diferentes significados en diferentes contextos.
Polimorfismo paramétrico: el polimorfismo más puro y más utilizado.
Contiene polimorfismo: se pueden utilizar las mismas operaciones para los tipos y sus subtipos. La inclusión de polimorfismo a menudo requiere una verificación de tipos en tiempo de ejecución. El polimorfismo de contención existe en muchos idiomas; el ejemplo más común es el subtipo, donde un tipo es un subtipo de otro tipo.
Polimorfismo forzado: El compilador fuerza el tipo del objeto manipulado para que cumpla los requisitos de la función u operador mediante operaciones semánticas.
Polimorfismo de sobrecarga: el mismo nombre (operador, nombre de función) tiene diferentes tipos en diferentes contextos. La mayoría de las configuraciones suaves actuales tienen polimorfismo sobrecargado.