¿A qué les suena la palabra POLIMORFISMO?
Pues hablando etimológicamente:
Poli: multi o varias.
Morfo: forma
No, no es un arranque de erudición, es en realidad una necesidad
conceptual para explicar de mejor manera lo que significa polimorfismo.
En otras palabras, el polimorfismo en un objeto, es simplemente un
objeto (o un método) que cambia de forma conforme se le necesite.
Cuando vemos un objeto y le pedimos que haga algo llamando a uno
de sus métodos, no necesariamente tenemos que saber cómo
hace lo que hace, salvo, claro, cuando creamos las clases o definimos
los métodos.
La premisa del polimorfismo es simplemente que, podemos definir métodos
que hagan cosas similares (o que incluso tengan el mismo nombre),
pero que, un objeto no tenga conocimiento del proceder de lo que hace
el método en otro objeto al que también se le aplica
el método “polimorfizado”
Pongamos un ejemplo, si tomamos en cuenta el hecho de que tenemos
dos subclases que se derivan de la superclase canimal, es decir cperros
y cgatos. Nuestra definición de la superclase canimal es la
siguiente:
class canimal{
}
Y nuestra impresión en pantalla la haríamos de la siguiente
forma:
echo $mish->sonido();
echo $fido->sonido();
La salida final es la siguiente:

Claro está, a menos que se trate de un gato bilingüe,
en definitiva los gatos no ladran, maúllan. ¿Qué
hacer si la superclase ha HEREDADO el método sonido() a la
subclase cgatos? Fácil, hacemos lo siguiente en la subclase
cgatos:
class cgatos extends canimal{
}
Obteniendo este glorioso resultado:
[Objeto Flash Eliminado]
Como vemos, el polimorfismo le da el control a una subclase la posibilidad
de tomar un método y moldearlo a su conveniencia.
En nuestro próximo encuentro Agregado (Agregación en
una traducción literal). Hasta Pronto.