No mundo da programação orientada a objetos (OOP), herança refere-se ao mecanismo da capacidade de uma classe de herdar ou estender propriedades de outra classe em tempo de execução. Esta propriedade permite que uma classe derivada obtenha propriedades ou características de uma classe base.
A herança em Python é considerada um dos aspectos mais importantes da OOP porque serve como uma função reutilizável, que torna um pedaço de código mais robusto.
Benefícios
- A herança descreve relacionamentos que se assemelham a cenários do mundo real.
- Ele fornece uma capacidade de reutilização que permite ao usuário adicionar funcionalidades adicionais a uma classe derivada sem alterá-la.
- Se a classe Y herdar da classe X, então automaticamente todas as subclasses de Y herdarão da classe X.
Termos básicos de herança
- Subclasse/classe derivada: esta é uma classe que herda propriedades de outra classe (geralmente uma classe base).
- Superclasse/classe base: Esta é a classe de onde vêm as outras subclasses.
- Uma classe derivada geralmente deriva / herda / estende uma classe base.
Sintaxe
class SuperClassName: Corpo da superclasse class DerivedClass_Name (SuperClass): Corpo do derivado class
Exemplos
Vamos mergulhar no mundo da herança Python com exemplos simples. Leia também sobre herança múltipla .
< br>
Passo 1. Criar uma classe base
class Pai: # A palavra-chave `self` é usada para representar a instância de uma classe. # Usando a palavra-chave "self" acessamos os atributos e métodos da classe em python. # O método "__init__" é chamado como construtor na terminologia orientada a objetos. # Este método é chamado quando um objeto é criado a partir de uma classe. # permite que a classe inicialize os atributos da classe. def __init __ (self, name, lastname): self.name = name self.lastname = lastname def printname (self): print (self.name, self.lastname) # Use a classe Father para criar um objeto e depois execute o método printname: x = Father ("Anees", "Mulani") x.printname ()
Saída: Anees Mulani
Etapa 2. Crie uma classe derivada
# A função __init __ () da subclasse substitui a herança da função __init __ () da classe base. class Filho (Pai): def __init __ (self, name, lastname): Father .__ init __ (self, name, lastname) x = Filho ("Dev", "Bajaj") x.printname()
Conclusão: Dev Bajaj
Usando a função super()
Usando a função super()
, você não precisa usar o pai nome do elemento, ele herdará automaticamente os métodos e propriedades de seu pai.
class Pai: def __init __ (self, name, lastname) : self.name = nome self.lastname = lastname def printname (self): print (self.name, self.lastname) class Filho (Pai): def __init __ (self, name, lastname): super() .__ init __ (nome, sobrenome) x = Aluno ("Dev", "Bajaj") x.printname ()