6.3 Herencia y polimorfismo: Cómo usar herencia y polimorfismo en Python

Herencia y Polimorfismo en Python

La herencia es un concepto fundamental en la programación orientada a objetos. Con la herencia, una clase puede heredar atributos y métodos de otra clase, lo que permite crear relaciones jerárquicas entre las clases. En Python, se puede crear una clase derivada de una clase base utilizando la siguiente sintaxis:

class BaseClass:
    def some_method(self):
        print('Soy un método de la clase base')

class DerivedClass(BaseClass):
    def some_other_method(self):
        print('Soy un método de la clase derivada')

En este ejemplo se define una clase base BaseClass con un método llamado some_method. Luego se define una clase derivada DerivedClass que hereda de la clase base utilizando la sintaxis class DerivedClass(BaseClass). La clase derivada también tiene un método propio llamado some_other_method. Esta clase también puede utilizar el método some_method de la clase base.

Por ejemplo:

class Shape:
    def draw(self):
        pass

class Circle(Shape):
    def draw(self):
        print('Dibujando un círculo')

class Square(Shape):
    def draw(self):
        print('Dibujando un cuadrado')

class Triangle(Shape):
    def draw(self):
        print('Dibujando un triángulo')

shapes = [Circle(), Square(), Triangle()]
for shape in shapes:
    shape.draw()

En este ejemplo se define una clase abstracta base Shape con un método abstracto draw. Luego se definen tres clases derivadas: Circle, Square y Triangle, todas ellas heredando de la clase base Shape. Cada una de estas clases tiene su propio método draw, que implementa cómo dibujar la forma específica. Finalmente, se crea una lista de objetos de diferentes formas y todas son llamadas su método draw, lo que da como resultado la ejecución del método draw específico de cada objeto, proporcionando polimorfismo.

AnteriorSiguiente

[mwai_chat]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *