Menu
Coddy logo textTech

Herança Básica

Parte da seção Object Oriented Programming do Journey de Python da Coddy — lição 17 de 64.

A herança permite que uma classe herde atributos e métodos de outra classe, criando uma relação pai-filho.

Aqui está um exemplo de uma classe pai:

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

Crie uma classe filha que herda da classe pai:

class Dog(Animal):
    pass  # Herda tudo de Animal

A sintaxe class Dog(Animal): significa que Dog herda de Animal. Coloque o nome da classe pai entre parênteses.

Crie objetos de ambas as classes:

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

Use os métodos herdados:

generic_animal.info()
buddy.info()

Saída:

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

Embora Dog não defina __init__ ou info, ele os obtém automaticamente de Animal.

Você pode adicionar novos métodos à classe filha:

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

buddy = Dog("Buddy")
buddy.info()  # Método herdado
buddy.bark()  # Novo método

Saída:

I am Buddy, an animal
Buddy says Woof!

Ponto Chave: Classes filhas herdam todos os atributos e métodos de sua classe pai. Use a sintaxe class Child(Parent): para criar herança. Isso ajuda você a reutilizar código e criar hierarquias de classes lógicas.

challenge icon

Desafio

Médio
  • vehicle.py: Contém a classe pai Vehicle
  • car.py: Contém a classe Car que herda de Vehicle
  • driver.py: Arquivo principal para testar sua implementação

Cada arquivo contém comentários TODO detalhados para guiá-lo através da implementação. Você precisará:

  • Completar a classe Vehicle com os atributos make e model
  • Implementar a herança de classe adequada na classe Car
  • Configurar as instruções de importação corretas entre os arquivos
  • Criar e testar objetos no arquivo driver

Siga os comentários TODO cuidadosamente, pois eles fornecem orientações passo a passo para a solução.

Folha de consulta

A herança permite que uma classe herde atributos e métodos de outra classe usando a sintaxe 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  # Inherits everything from Animal

As classes filhas herdam automaticamente todos os métodos e atributos da classe pai:

buddy = Dog("Buddy")
buddy.info()  # Uses inherited method
# Output: I am Buddy, an animal

Adicione novos métodos às classes filhas mantendo a funcionalidade herdada:

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

buddy = Dog("Buddy")
buddy.info()  # Inherited method
buddy.bark()  # New method

Experimente você mesmo

# TODO: Importar a classe Vehicle de vehicle.py
# TODO: Importar a classe Car de car.py

# TODO: Criar um objeto Vehicle com marca "Toyota" e modelo "Corolla"
vehicle = None

# TODO: Criar um objeto Car com marca "Honda" e modelo "Civic"
car = None

# TODO: Chamar o método display_info() no objeto vehicle
# Saída esperada: "Vehicle: Toyota Corolla"

# TODO: Chamar o método display_info() no objeto car
# Saída esperada: "Vehicle: Honda Civic"
# Nota: Car herda display_info de Vehicle sem modificação
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Object Oriented Programming