Menu
CoddyTech

Herencia múltiple

Parte de la sección Programación orientada a objetos del Journey de Python de Coddy. Lección 20 de 64.

La herencia múltiple permite que una clase herede de más de una clase padre, combinando funcionalidades de diferentes fuentes.

Aquí hay dos clases principales:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def eat(self):
        return f"{self.name} is eating"

class Flyable:
    def fly(self):
        return f"{self.name} is flying"

Crea una clase hija que herede de ambos padres:

class Bird(Animal, Flyable):
    def __init__(self, name, species):
        super().__init__(name)  # Llama al método __init__ de Animal
        self.species = species
    
    def sing(self):
        return f"{self.name} is singing"

La sintaxis class Bird(Animal, Flyable): significa que Bird hereda tanto de Animal como de Flyable.

Crea un objeto de ave y usa métodos de ambos padres:

sparrow = Bird("Sparrow", "House sparrow")

Llama a métodos de la primera clase padre:

print(sparrow.eat())

Llama a métodos de la segunda clase padre:

print(sparrow.fly())

Llama al método propio del pájaro:

print(sparrow.sing())

Salida:

Sparrow is eating
Sparrow is flying
Sparrow is singing

Puedes comprobar el orden de herencia:

print(Bird.__mro__)  # Orden de resolución de métodos

Esto muestra qué clase padre se comprueba primero al buscar métodos.

Punto clave: la herencia múltiple usa la sintaxis class Child(Parent1, Parent2):. La clase hija obtiene todos los métodos de todas las clases padre. Python comprueba las clases padre de izquierda a derecha al buscar métodos.

challenge icon

Desafío

Intermedio

En este desafío, implementarás un sistema de clases con varios archivos que demuestra la herencia múltiple mediante teléfonos inteligentes. Cada clase está organizada en su propio archivo para mejorar la organización del código.

Tendrás que editar estos archivos:

  • device.py - Implementa la clase base Device
  • internet.py - Implementa la clase base Internet
  • smartphone.py - Implementa la clase Smartphone que hereda de ambas clases base
  • driver.py - Implementa casos de prueba que verificarán que tu implementación funcione correctamente

Cada archivo contiene comentarios detallados de TODO que te guiarán paso a paso en la implementación.

Pruébalo tú mismo

# TODO: Importa la clase Smartphone desde smartphone.py

# Crea un smartphone y prueba sus métodos
# TODO: Crea un objeto Smartphone con la marca "Apple" y el modelo "iPhone 13"
my_phone = None

# TODO: Llama al método power_on() del smartphone e imprime su resultado

# TODO: Llama al método connect() del smartphone e imprime su resultado

# TODO: Llama al método make_call() del smartphone con el parámetro "123-456-7890" e imprime su resultado
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 Programación orientada a objetos

Practica por tu cuenta: Compilador de Python online