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 AnimalA 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 animalEmbora 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étodoSaí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.
Desafio
Médiovehicle.py: Contém a classe paiVehiclecar.py: Contém a classeCarque herda deVehicledriver.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
Vehiclecom os atributosmakeemodel - 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 AnimalAs 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 animalAdicione 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 methodExperimente 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çãoEsta 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
1Fundamentos de POO
Arquivos ExternosIntrodução à POOClasses vs ObjetosO Parâmetro selfMétodosAtributosMétodo Construtor (__init__)Recapitulação - Calculadora Simples4Herança
Herança BásicaA Função super()Sobrescrita de MétodoHerança MúltiplaOrdem de Resolução de MétodosRecapitulação - Hierarquia de Funcionários7Métodos Especiais
Introdução aos Métodos MágicosSobrecarga de OperadoresMétodos Mágicos de ContêinerRecapitulação - Lista Personalizada10Padrões de Projeto Parte 1
Introdução a Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão Strategy2Decoradores
Introdução aos DecoradoresDecorador de PropriedadeDecorador de Método EstáticoDecorador de Método de Classe5Polimorfismo
Sobrescrita de Método RevisitadaDuck TypingClasses e Métodos AbstratosDesign de InterfacesRecapitulação - Calculadora de Formas8Conceitos Avançados de POO
Composição vs HerançaMixinsMétodos Estáticos e de ClasseDecoradores de ClasseGerenciadores de Contexto11Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite3Propriedades de Classe
Variáveis de Instância vs de ClasseDecoradores de PropriedadeAtributos PrivadosRecapitulação - Gerenciador de Conta Bancária6Encapsulamento
Membros Públicos, Protegidos e PrivadosModificadores de AcessoOcultação de InformaçãoProperty Decorators AvançadosRecapitulação - Sistema de Registro de Alunos12Projeto: Gerenciamento de Biblioteca
Visão Geral do ProjetoClasses Livro e Usuário