Skip to content

POO para principiantes. Aprende el pilar de la herencia con Python

Posted on:April 15, 2023 at 02:05 AM

En la publicación anterior aprendimos el principio del encapsulamiento. Hoy nos corresponde entender lo que es la herencia.

La teoría que necesitas

En caso de que sea tu primera vez con el tema de Programación Orientada Objetos, te recomiendo que vayas a esta publicación donde vimos los conceptos más importantes para poderlo entender mejor.

Herramientas que necesitas

Si ya estás listo ¡COMENCEMOS!

Herencia con Python

Para realizar herencia con Python tengamos en cuenta los siguientes puntos claves:

👀 Atento al siguiente código:

class Vehiculo:
    def __init__(self, marca, modelo):
        self.marca = marca
        self.modelo = modelo

class Carro:
		pass

Definimos la clase Vehiculo la cual será la superclase o clase padre, esta posee los atributos de:

La clase siguiente que se genera se llama Carro y esta será la subclase o clase hija con la cual vamos a hacer el ejercicio de la herencia.

ℹ️ Para tener en cuenta: La instrucción pass se usa para poder hacer que un bloque de código que no posee nada en su interior no nos genere error mientras agregamos lo que queremos.

¡Pongámoslo a prueba! 🔥

  1. Al nombre de la clase le vas a agregar al final, antes de los dos puntos un paréntesis y dentro de él vas a colocar el nombre de la superclase de la cual se quiere heredar. En este caso será Vehiculo.

    class Vehiculo:
        def __init__(self, marca, modelo):
            self.marca = marca
            self.modelo = modelo
    
    class Carro(Vehiculo):
        pass
  2. Definimos el constructor de la clase Carro y a través del uso de la función super() hacemos que herede los atributos de marca y modelo de la superclase Vehiculo

    class Vehiculo:
        def __init__(self, marca, modelo):
            self.marca = marca
            self.modelo = modelo
    
    class Carro(Vehiculo):
        def __init__(self, marca, modelo, precio):
            super().__init__(marca, modelo)
  3. Las subclases también pueden tener sus propios atributos, por lo cual vamos a agregar el atributo de “precio” a la clase de Carro

    class Vehiculo:
        def __init__(self, marca, modelo):
            self.marca = marca
            self.modelo = modelo
    
    class Carro(Vehiculo):
        def __init__(self, marca, modelo, precio):
            super().__init__(marca, modelo)
            self.precio = precio
    
  4. Procedamos instanciar la clase Carro y a darle el valor a los atributos de marca, modelo y precio

    class Vehiculo:
        def __init__(self, marca, modelo):
            self.marca = marca
            self.modelo = modelo
    
    class Carro(Vehiculo):
        def __init__(self, marca, modelo, precio):
            super().__init__(marca, modelo)
            self.precio = precio
    
    carro = Carro("Ford", "Mustang", 50000)
  5. Finalmente, vamos a probar que nos devuelva los valores de los atributos que esperamos para nuestro objeto

    class Vehiculo:
        def __init__(self, marca, modelo):
            self.marca = marca
            self.modelo = modelo
    
    class Carro(Vehiculo):
        def __init__(self, marca, modelo, precio):
            super().__init__(marca, modelo)
            self.precio = precio
    
    carro = Carro("Ford", "Mustang", 50000)
    print(carro.marca) # Ford
    print(carro.modelo) # Mustang
    print(carro.precio) # 50000

Eso es todo, de esta manera puedes aplicar el pilar de la herencia de la programación orientada a objetos con python. ¿Fácil no?

En nuestro próximo artículo aprenderemos sobre el polimorfismo con Python.

🤓 Reto

Crea nuevas clases que hereden de vehículo y agrégale al menos un atributo propio a cada una de ellas.