29. Programación orientada a objetos VI

Vídeo

Notas personales

En programación orientada a objetos, el concepto de herencia intenta dar una réplica aproximada de su contrapartida en la vida real. De una clase, denominada en ocasiones clase padre o superclase, heredarán otras clases atributos, métodos… Se conocen estas últimas como subclases de la anterior (y también como superclases si de ellas también heredan otras).

La principal utilidad de la herencia es la reutilización de código cuando se generan clases ‘‘similares’’. Hemos de estudiar las características y comportamientos que poseen en común todos los objetos con los que deseamos trabajar. Todo ello lo englobaremos en una superclase, de la cual luego heredarán otras clases, que aun teniendo características en común, también es cierto que existen otras peculiaridades que las diferencian.

Veamos un ejemplo práctico:

# Clase Padre
class Vehiculo():
    def __init__(self, marca, modelo):
        self.marca = marca
        self.modelo = modelo
        self.enmarcha = False
        self.acelera = False
        self.frena = False

    def arrancar(self):
        self.enmarcha = True

    def acelerar(self):
        self.acelera = True

    def frenar(self):
        self.frena = True

    def estado(self):
        print("Marca:", self.marca, "\nModelo:", self.modelo, "\nEn marcha:",
              self.enmarcha, "\nAcelerando:", self.acelera, "\nFrenando:",
              self.frena)


# Clase hija
class Moto(Vehiculo):
    pass


mi_moto = Moto("Honda", "CBR")

mi_moto.estado()
Marca: Honda 
Modelo: CBR 
En marcha: False 
Acelerando: False 
Frenando: False

Estamos utilizando métodos de la clase Vehiculo a través de la clase Moto gracias a la herencia.

Código fuente

El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/29/ del repositorio.

Anterior
Siguiente