¿Qué es el Polimorfismo – POO?

Dale amor a este post!!!

Cuando pensamos que un animal o especie puede tener muchas formas o etapas diferentes durante su vida, estamos haciendo referencia a un principio en biología denominado polimorfismo. Este principio es muy común en la naturaleza ya que está relacionado con la biodiversidad, la variación genética y la adaptación.

Además de la biología, el concepto de polimorfismo se usa en varios contextos y describe situaciones en las que algo ocurre en varias formas diferentes.

En la informática, el Polimorfismo es considerado uno de los elementos mas importantes dentro de la PROGRAMACIÓN ORIENTADA A OBJETOS ya que su definición esta fuertemente ligada a la herencia, recordemos que la herencia nos permite heredar atributos y métodos de otra clase.

Como definición, el polimorfismo es la habilidad de un objeto de realizar una acción de diferentes maneras, utilizando métodos iguales que se implementen de forma diferente en varias clases.

Pero, ¿Cómo funciona el polimorfismo en java?.

El polimorfismo en Java tiene dos tipos: polimorfismo en tiempo de compilación, también conocido como estático y polimorfismo en tiempo de ejecución o polimorfismo dinámico. El método Overload es un ejemplo de polimorfismo estático, mientras que el método Override es un ejemplo de polimorfismo dinámico.

En Java, el POLIMORFISMO ESTÁTICO se logra mediante Overload o sobrecarga de métodos. La sobrecarga de métodos significa que hay varios métodos presentes, en una clase que tiene el mismo nombre pero diferentes…. tipos/orden ó número……de parámetros.En tiempo de compilación, Java sabe qué método invocar al verificar cada método.

El POLIMORFISMO DINÁMICO funciona de manera diferente, Supongamos que tenemos 2 clases, VEHICULO y MOTOCICLETA, cada una con su respectivo método mover.

Vamos a crear un objeto de la superclase VEHICULO y hacemos una llamada al método mover,¿Podríamos ocupar este mismo objeto para hacer referencia a la subclase MOTOCICLETA?

La respuesta es SI, de hecho en este ejemplo, creamos un objeto de la clase VEHICULO y después se llama al método mover() de la clase VEHICULO. Posteriormente se hará una reasignación del objeto y la clase a la que se hará referencia es a MOTOCICLETA. posteriormente cuando se realice la llamada al método mover(), se estará llamando al método mover() de MOTOCICLETA.

Para finalizar podemos decir que el polimorfismo permite definir distintos comportamientos para un objeto dependiendo de la manera en que se realice la implementación, ademas ayuda a construir programas que sean:

  1. Concisos: Código más corto de lo que podrían llegar a ser.
  2. Modulares: Las partes de código que no están relacionadas se mantienen separadas.
  3. Fáciles de Modificar y Adaptar: por ejemplo, cuándo se crean nuevos objetos.

Dale amor a este post!!!