El polimorfismo y su relevancia en la programaci贸n orientada a objetos

Polimorfismo en programaci贸n

El polimorfismo es uno de los seis pilares b谩sicos en la programaci贸n orientada a objetos, por lo que para entenderlo es importante tener las bases de la POO y la herencia bien asentadas.

Una definici贸n un tanto informal del polimorfismo, dir铆a algo as铆: "me da igual de que clase sea este objeto, que si comparte funcionalidades con otros, para mi son lo mismo". Evidentemente para que esto ocurra tiene que existir un denominador com煤n, que por definici贸n ocurre cuando una clase hija hereda de una padre, heredando todos sus m茅todos y atributos. Las clases hijas pueden implementar los m茅todos de una forma diferente, pero usando el mismo interfaz.

Vamos a ver un ejemplo en Python con tres clases de tres animales. Todas implementan el m茅todo hablar().

class Perro:
    def hablar(self):
        print("Guau!")

class Gato:
    def hablar(self):
        print("Miau!")

class Vaca:
    def hablar(self):
        print("Muuu!")

Vamos a crear una lista de objetos, uno de cada clase.

animales = [Perro(), Gato(), Vaca()]

Y ahora vamos a llamar al m茅todo hablar() de todos los animales. Como todos ellos lo codifican con el mismo nombre, pero con una implementaci贸n distinta, se ejecutar谩 sin problemas. Esto ejemplo usa en cierto modo el concepto de polimorfismo

for animal in animales:
    animal.hablar()

# Guau!
# Miau!
# Muuu!

Y llevado a la herencia, ser铆a exactamente igual. Tenemos una clase padre Animal con un m茅todo definido pero no implementado, de la que heredan tres animales. Cada animal implementa el m茅todo com煤n de una manera distinta.

class Animal:
    def hablar(self):
        pass

class Perro(Animal):
    def hablar(self):
        print("Guau!")

class Gato(Animal):
    def hablar(self):
        print("Miau!")

class Vaca(Animal):
    def hablar(self):
        print("Muuu!")

animales = [Perro(), Gato(), Vaca()]
for animal in animales:
    animal.hablar()

# Guau!
# Miau!
# Muuu!

Existen otros conceptos muy importantes y relacionados con la programaci贸n orientada a objetos. Aqu铆 te los dejamos:

¡Deja un comentario!

avatar
  Subscribe  
Notify of