Este documento explica el concepto de polimorfismo en programación orientada a objetos. El polimorfismo permite enviar mensajes iguales a objetos de diferentes tipos siempre que sepan responder al mensaje. Se clasifica en polimorfismo dinámico y estático. El polimorfismo ofrece ventajas como separar lo que cambia de lo que no cambia para facilitar ampliaciones y reutilización, pero limita los métodos y variables accesibles a los de la clase base o interfaz de referencia.