¿Qué puede hacer el polimorfismo que no puede hacer la herencia? [duplicar

Esta pregunta ya tiene una respuesta aquí:

Cuál es la principal diferencia entre herencia y polimorfismo? 15 respuestas

Imagina que tenemos una claseAnimal que se extiende a otras tres clases:Dog, Cat, Bird.

sta clase de animales tiene unatalk() ymove() función. La función de conversación emite "Animal hablando" y la función de movimiento emite "Animal en movimiento".

Para un perro, esto es "Perro en movimiento" y "Perro comiendo". Para elCat yBird clase, esta diferencia es paralela "Gato en movimiento", etc.

Ahora, debido al polimorfismo, si lo hago

Animal charlietheBird = new Bird()

y luego llame a

charlietheBird.talk()

saldrá

Bird hablando

porque la salida se determina en tiempo de ejecución ya que el compilador sabe que Charlie es un tipo deAnimal de la claseBird.

¡¡SIN EMBARGO!

Simplemente puedo hacer

Bird charlietheBird = new Bird();

y luego llamando acharlietheBird.poop(); dará el mismo resultado, porque el método habría sido anulado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta