Herencia
La herencia es un pilar fundamental de la programación orientada a objetos. Permite crear nuevas clases basadas en clases existentes, reutilizando y extendiendo su funcionalidad. Así, puedes modelar relaciones del tipo “es un” (por ejemplo, un Perro es un Animal).
¿Por qué usar herencia?
Sección titulada «¿Por qué usar herencia?»- Reutilización de código: Evita repetir atributos y métodos comunes.
- Organización: Permite estructurar jerarquías lógicas entre clases.
- Extensión: Puedes agregar o modificar comportamientos en las subclases.
Sintaxis básica
Sección titulada «Sintaxis básica»Para crear una clase que hereda de otra, simplemente indica la clase base entre paréntesis:
class ClaseBase: # atributos y métodos
class SubClase(ClaseBase): # nuevos atributos y métodosEjemplo simple
Sección titulada «Ejemplo simple»Supongamos que tienes una clase Animal y quieres crear una clase Perro que herede de ella:
class Animal: def __init__(self, nombre): self.nombre = nombre
def hablar(self): print('Hace un sonido')
class Perro(Animal): def hablar(self): print(f'{self.nombre} dice: ¡Guau!')
mi_perro = Perro('Rex')mi_perro.hablar() # Rex dice: ¡Guau!En este ejemplo, Perro hereda el atributo nombre y el método hablar de Animal, pero lo redefine para personalizar el comportamiento.
Uso de super()
Sección titulada «Uso de super()»Puedes llamar métodos de la clase base usando super(). Esto es útil para extender la funcionalidad sin reemplazarla completamente.
class Animal: def __init__(self, nombre): self.nombre = nombre
def describir(self): print(f'Soy un animal llamado {self.nombre}')
class Gato(Animal): def describir(self): super().describir() print('Y soy un gato.')
g = Gato('Michi')g.describir()Salida:
Soy un animal llamado MichiY soy un gato.Herencia múltiple
Sección titulada «Herencia múltiple»En Python, una clase puede heredar de varias clases a la vez:
class ClaseA: pass
class ClaseB: pass
class SubClase(ClaseA, ClaseB): passResumen
Sección titulada «Resumen»- La herencia permite crear clases que reutilizan y extienden otras.
- Usa
super()para acceder a métodos de la clase base. - Puedes redefinir métodos para personalizar el comportamiento en las subclases.
- Python permite herencia múltiple.
¿Listo para practicar? Intenta crear una clase base Vehiculo y una subclase Coche que agregue un método propio.