Polimorfismo es una palabra muy rimbombante que parece hacer referencia a algo muy complicado, y lo cierto es que no.
Polimorfismo significa "varias formas", ¿cómo se aplica esto a POO?
Por ejemplo, pensemos en la clase Hombre y en la clase Mujer, que ambos heredan de la clase Persona.
Hombre y Mujer son clases diferentes, van a tener atributos y métodos diferentes. Pero también van a tener algunos atributos/métodos comunes, que son los que van a heredar de Persona.
Bien, si yo ahora creo un array para guardar objetos Hombre.
Yo ahí no puedo poner objetos Mujer. Obvio porque es una clase distinta.
Pero tampoco puedo poner objetos Persona, a pesar de que un Hombre es una Persona.
Ese array solo acepta objetos que tengan la "forma" de Hombre, porque se espera que todos eso objetos tengan los métodos y atributos de la forma/clase Hombre.
Es decir, solo objetos capaces de comportarse como un Hombre son aceptados.
Bien, si yo ahora creo un array de Persona:
Yo ahí puedo poner objetos Persona. Pero
también puedo poner objetos Hombre y objetos Mujer.
¿Por qué?
Porque para ese array se pide que los objetos sepan comportarse como un objeto Persona.
Hombre y Mujer son distintos, pero saben comportarse como un objeto Persona, ya que heredan sus atributos/métodos.
Eso sí, mientras estén dentro del array Persona, su "forma" va a ser el de una Persona. Los objetos Hombre no podrán hacer cosas específicas de la clase Hombre y lo mismo para los objetos Mujer.
A eso hace referencia el polimorfismo:
Un objeto puede tener varias "formas" según su "linaje hereditario" e ir cambiando de una a otra según las necesidades.
Así un Hombre, puede tener forma de Hombre, puede tener forma de Persona y también puede tener forma de Object. En Java todas las clases son hijas de la clase Object, de quien heredan métodos como por ejemplo el método toString()
Lo mismo para un objeto Mujer.
Y un objeto Persona puede tener forma de Persona y forma de Object, pues su línea hereditaria es menor.
Y bueno, eso es polimorfismo. Como digo no es nada extraño o complicado, pero la palabra asusta un poco xD