Aprenda a Implementar Herança em Python

A herança em Python permite que uma classe filha herde atributos e métodos de uma classe pai, facilitando a reutilização de código.

Como fazer herança em Python?

A herança é um dos princípios fundamentais da Programação Orientada a Objetos (POO) e permite reutilizar código de uma classe base (superclasse) em classes derivadas (subclasses).

Criando uma classe base

Vamos definir uma classe Veiculo que servirá como base para outras classes.

class Veiculo:  
    def __init__(self, marca, modelo):  
        self.marca = marca  
        self.modelo = modelo  

    def exibir_detalhes(self):  
        return f'Veículo: {self.marca} {self.modelo}'  

Criando uma classe filha

Agora criamos uma classe Carro, que herda de Veiculo:

class Carro(Veiculo):  
    def __init__(self, marca, modelo, portas):  
        super().__init__(marca, modelo)  
        self.portas = portas  

    def exibir_detalhes(self):  
        return f'Carro: {self.marca} {self.modelo}, {self.portas} portas'  

Explicação do código

  1. A classe Carro herda atributos e métodos da classe Veiculo. 2. O método super().__init__() chama o construtor da superclasse. 3. O método exibir_detalhes() é sobrescrito para incluir a quantidade de portas.

Agora podemos instanciar um objeto da classe Carro:

meu_carro = Carro("Toyota", "Corolla", 4)  
print(meu_carro.exibir_detalhes())  

Saída: Carro: Toyota Corolla, 4 portas

A herança é essencial para evitar repetição de código e criar hierarquias bem estruturadas. Ela permite que classes derivadas utilizem e modifiquem funcionalidades da classe base, tornando o código mais modular e reutilizável.

Algumas aplicações:

  • Criação de hierarquias de classes eficientes.
  • Reutilização de código para evitar repetição.
  • Facilidade na manutenção e escalabilidade do software.

Dicas para quem está começando

  • Utilize super() para chamar métodos da classe pai.
  • Só utilize herança quando houver uma relação clara entre as classes.
  • Evite heranças muito profundas, pois podem dificultar a manutenção.
  • Explore a sobrescrita de métodos para personalizar comportamentos.

Contribuições de Pedro Vasconcellos

Compartilhe este tutorial: Como fazer herança em Python

Compartilhe este tutorial

Continue aprendendo:

Qual a diferença entre __init__ e __new__

O __init__ inicializa um objeto já criado, enquanto o __new__ é responsável pela criação da instância antes da inicialização.

Tutorial anterior

O que são métodos estáticos e métodos de classe em Python

Os métodos estáticos e métodos de classe em Python diferem no uso do decorador @staticmethod e @classmethod e no acesso a atributos da classe.

Próximo tutorial