Menu
Coddy logo textTech

Herencia básica

Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 17 de 64.

La herencia permite que una clase herede atributos y métodos de otra clase, creando una relación padre-hijo.

Aquí hay un ejemplo de una clase padre:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

Crea una clase hija que herede del padre:

class Dog(Animal):
    pass  # Hereda todo de Animal

La sintaxis class Dog(Animal): significa que Dog hereda de Animal. Coloca el nombre de la clase padre entre paréntesis.

Crea objetos de ambas clases:

generic_animal = Animal("Creature")
buddy = Dog("Buddy")

Utiliza los métodos heredados:

generic_animal.info()
buddy.info()

Salida:

I am Creature, an animal
I am Buddy, an animal

Aunque Dog no define __init__ o info, los obtiene automáticamente de Animal.

Puedes añadir nuevos métodos a la clase hija:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Método heredado
buddy.bark()  # Nuevo método

Salida:

I am Buddy, an animal
Buddy says Woof!

Punto clave: Las clases hijas heredan todos los atributos y métodos de su clase padre. Utiliza la sintaxis class Child(Parent): para crear herencia. Esto te ayuda a reutilizar código y crear jerarquías de clases lógicas.

challenge icon

Desafío

Intermedio
  • vehicle.py: Contiene la clase padre Vehicle
  • car.py: Contiene la clase Car que hereda de Vehicle
  • driver.py: Archivo principal para probar tu implementación

Cada archivo contiene comentarios TODO detallados para guiarte a través de la implementación. Necesitarás:

  • Completar la clase Vehicle con los atributos make y model
  • Implementar la herencia de clases adecuada en la clase Car
  • Configurar las sentencias de importación correctas entre archivos
  • Crear y probar objetos en el archivo driver

Sigue los comentarios TODO cuidadosamente, ya que proporcionan una guía paso a paso para la solución.

Hoja de referencia

La herencia permite que una clase herede atributos y métodos de otra clase utilizando la sintaxis class Child(Parent)::

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

class Dog(Animal):
    pass  # Hereda todo de Animal

Las clases hijas heredan automáticamente todos los métodos y atributos del padre:

buddy = Dog("Buddy")
buddy.info()  # Usa el método heredado
# Salida: I am Buddy, an animal

Agregue nuevos métodos a las clases hijas manteniendo la funcionalidad heredada:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Método heredado
buddy.bark()  # Nuevo método

Pruébalo tú mismo

# TODO: Importar la clase Vehicle desde vehicle.py
# TODO: Importar la clase Car desde car.py

# TODO: Crear un objeto Vehicle con marca "Toyota" y modelo "Corolla"
vehicle = None

# TODO: Crear un objeto Car con marca "Honda" y modelo "Civic"
car = None

# TODO: Llamar al método display_info() en el objeto vehicle
# Salida esperada: "Vehicle: Toyota Corolla"

# TODO: Llamar al método display_info() en el objeto car
# Salida esperada: "Vehicle: Honda Civic"
# Nota: Car hereda display_info de Vehicle sin modificaciones
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Object Oriented Programming