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étodos
Ejemplo 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): pass
Resumen
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.