POO: Polimorfismo

 Polimorfismo en la Programación 

Orientada a Objetos

   

El polimorfismo es uno de los conceptos más fundamentales y poderosos en la Programación Orientada a Objetos (POO). Su nombre proviene del griego y significa "muchas formas". En el ámbito de la programación, el polimorfismo permite que las clases y los objetos adopten diferentes comportamientos a través de un mismo método o interfaz.

Pero antes de todo esto:

¿Qué es el Polimorfismo? 🤔


El polimorfismo se refiere a la capacidad de un método, función o interfaz de tomar diferentes formas según el contexto en el que se utiliza. Este principio permite escribir código más flexible, reutilizable y fácil de mantener.

En términos más concretos, una función o método puede comportarse de manera diferente dependiendo de los datos que recibe o el tipo de objeto que lo invoca.


Existen varios tipos de polimorfismo, acá presento algunos de estos:

Polimorfismo de Sobrecarga: 

Este ocurre cuando varios métodos en la misma clase tienen el mismo nombre, pero se diferencian por la cantidad o tipo de parámetros. Es una forma de sobrecarga de métodos.



Polimorfismo de Sobreescritura: 

Este se da cuando una subclase sobrescribe un método de la clase padre. Aquí es donde los métodos dinámicos muestran su verdadera capacidad, ya que el comportamiento de la función se define en tiempo de ejecución.


Polimorfismo en Arrays y Colecciones:

Se puede almacenar instancias de una clase hija en una variable o estructura que acepta objetos de la clase padre. Esto permite trabajar de manera uniforme con diferentes tipos de objetos que comparten un ancestro común.

Por ejemplo, si tienes una clase base (padre) llamada Animal  y varias clases derivadas (hijas) como PerroGato, puedes almacenar objetos de Perro  y Gato dentro de un arreglo (o lista) que solo acepta instancias de Animal.

Aquí un poco de código de ejemplo:













Ventajas del Polimorfismo

  • Flexibilidad: Permite usar una misma interfaz para múltiples tipos de datos.
  • Extensibilidad: Facilita la incorporación de nuevas funcionalidades sin alterar el código existente.
  • Mantenibilidad: Reduce el esfuerzo necesario para realizar modificaciones o correcciones.

  • Implementación

    En lenguajes como Java, Python o C#, el polimorfismo se implementa comúnmente a través de la herencia y las interfaces. Por ejemplo en Python:









    Comentarios

    Entradas populares