Cita: polimorfismo en java realmente significa eso que un obj se pueda comportar como otro
Más concretamente, en Java, y la POO en general, se refiere al hecho de que usando un mismo "nombre" podemos obtener distintos comportamientos (formas). Ello se consigue a través de la sobreescritura y sobrecarga de métodos, y el uso de interfaces.
Así pues, "enviando el mismo mensaje" (llamando el mismo metodo pero dicho en terminología purista OOP) podemos obtener "distintos comportamientos".
Y eso es debido a que Java utiliza una técnica conocida como "late-binding", por la cual decide el método a llamar en tiempo de ejecución, no en compilación.
S!