7.9 Polimorfismo

Otra propiedad importante de la programación orientada a objetos es el polimorfismo. Polimorfismo puro se produce cuando una única función se puede aplicar a una variedad de tipos o clases de objetos. En polimorfismo puro hay una función (el cuerpo del código) y un número de interpretaciones (significados diferentes). El polimorfismo supone que un mismo mensaje puede producir acciones (resultados) totalmente diferentes cuando se recibe por objetos diferentes.

El polimorfismo, en su expresión más simple, es el uso de un nombre o un símbolo (por ejemplo, un operador) para representar o significar más de una acción. Esta propiedad, en su concepción básica, se encuentra en casi todos los lenguajes de programación, de tal forma que es frecuente que el símbolo + sirva tanto para realizar sumas aritméticas como para concatenar (unir) cadenas. Cuando a un operador existente en el lenguaje, tal como +, = o *, se le asigna la posibilidad de operar sobre un nuevo tipo de dato, se dice que está sobrecargado. La sobrecarga, que no sólo puede ser de operadores sino también de métodos, es una clase de polimorfismo.