Herança de Python

Herança de Python

O Python é uma linguagem de programação orientada a objetos. Em uma linguagem de programação orientada a objetos, criamos as classes e realizamos a funcionalidade pretendida. Herança é a característica fundamental das linguagens de programação orientadas a objetos. A herança pode ser definida como a capacidade de uma classe de herdar todas as funções e propriedades de outra classe. A herança essencialmente permite estender as propriedades de uma classe existente. A herança é alavancada com os dois principais conceitos:

  1. Classe pai ou classe base
  2. Classe infantil ou classe derivada

A classe pai é a classe que permite que outras classes sejam herdadas de. Também é chamado de classe base. A classe infantil ou aula derivada é a classe que herda todas as propriedades e funções de outra classe. A herança promove vários benefícios, eu.e., É a representação do fenômeno de herança do mundo real. Incentiva a reutilização do código. Se uma função for definida em uma classe, a outra classe pode herdar esta classe e usar todas as funções existentes. Não há necessidade de escrever o mesmo código repetidamente para executar tarefas semelhantes. A herança é aplicada em vários níveis. Por exemplo, se a classe B é herdada de A e Classe C é herdada da classe B, então a classe C possui todas as propriedades da classe B e também a classe A. A sintaxe da herança é a seguinte:

Classe ParentClass:
Detalhes da implementação da classe pai
Classe ChildClass:
Detalhes da implementação da classe infantil

Embora a classe infantil tenha acesso a todos os recursos e funções da classe pai, no entanto, ela pode adicionar seus novos recursos e funções também.

Este artigo descreve e abrange todos os aspectos da herança de Python.

Implementação de herança em Python

A herança pode ser aplicada em inúmeras situações. Vamos supor que você esteja construindo um sistema de software para uma universidade. Pode ser composto por múltiplas partes interessadas, como alunos, professores, funcionários, etc. Portanto, toda pessoa tem um nome, idade, e -mail e outras propriedades comuns. Não é necessário declarar todas as propriedades em cada classe separadamente. Podemos fazer uma classe de pessoa, e todas as aulas das partes interessadas podem herdar todas as propriedades e funções comuns da classe Pessoa. Nesse caso, não há necessidade de escrever as propriedades comuns em cada classe de novo e de novo. Da mesma forma, podemos considerar uma classe de animais. Existem centenas de tipos de animais neste mundo. Todos os animais comem, dormem e têm algumas espécies também. Este conceito também pode ser implementado usando herança.

Vamos considerar o animal como uma super classe e implementar a herança. No exemplo abaixo dado, criamos uma aula de animais. A classe de animais é a classe pai. Além disso, criamos o cachorro e as aulas de gatos que herda as propriedades e funções da classe de animais. A palavra -chave pass é usada na classe infantil, quando não precisamos implementar nenhuma funcionalidade estendida na classe infantil.

#Classe de pais
Animal de classe:
#Initialization Função
#initilização O nome do animal e tipo de espécie
def __init __ (self, nome, especie_type):
auto.nome = nome
auto.especie_type = specie_type
#uma função para imprimir o nome do animal
def PrintName (self):
print ("O nome do animal é:", eu.nome)
#uma função para imprimir o tipo de espécie animal
Def PrintSpecie (self):
print ("O tipo de espécie é:", eu.espécie_type)
#Criando a classe de cães como classe infantil de classe de animais
Cão de classe (animal):
# Sem extensão ou modificação
passar
#agora a classe de cães tem acesso a todas as funções e propriedades da classe de animais
#Criando o objeto de classe de cachorro
Dogobj = cachorro ("cachorro", "carnívoro")
DOGOBJ.printName ()
DOGOBJ.PrintSpecie ()
#Creating the Cat Class como classe infantil de classe de animais
Cat Cat (Animal):
#A função de iniciativa da classe CAT
def __init __ (self):
#Calling e usando a função de iniciativa da classe animal
Animal.__init __ (self, "gato", "mamífero carnívoro")
#agora a classe de gatos tem acesso a todas as funções e propriedades da classe de animais
#Criando o objeto de classe Cat
CATOBJ = CAT ()
CATOBJ.printName ()
CATOBJ.PrintSpecie ()

Saída

O "Animal.__init __ (self, "gato", "mamífero carnívoro") " Call é a função de inicialização da classe animal.

A função super ()

O Python fornece uma função super () integrada para herdar todas as propriedades e funções da classe pai. Quando usamos a função super (), não há necessidade de mencionar o nome da classe pai como fizemos em "Animal.__init __ (self, "gato", "mamífero carnívoro") " Mas a função super () aponta automaticamente para a classe pai. Vamos usar a super função.

#Classe de pais
Animal de classe:
#Initialization Função
#initilização O nome do animal e tipo de espécie
def __init __ (self, nome, especie_type):
auto.nome = nome
auto.especie_type = specie_type
#uma função para imprimir o nome do animal
def PrintName (self):
print ("O nome do animal é:", eu.nome)
#uma função para imprimir o tipo de espécie animal
Def PrintSpecie (self):
print ("O tipo de espécie é:", eu.espécie_type)
#Criando a classe de cães como classe infantil de classe de animais
Cão de classe (animal):
#Using super () função
def __init __ (self, nome, especie_type):
super().__init __ (nome, especie_type)
#agora a classe de cães tem acesso a todas as funções e propriedades da classe de animais
#Criando o objeto de classe de cachorro
Dogobj = cachorro ("cachorro", "carnívoro")
DOGOBJ.printName ()
DOGOBJ.PrintSpecie ()
#Creating the Cat Class como classe infantil de classe de animais
Cat Cat (Animal):
#A função de iniciativa da classe CAT
#Using super () função
def __init __ (self, nome, especie_type):
super().__init __ (nome, especie_type)
#agora a classe de gatos tem acesso a todas as funções e propriedades da classe de animais
#Criando o objeto de classe Cat
CATOBJ = CAT ("CAT", "Mamíferos Carnívoros")
CATOBJ.printName ()
CATOBJ.PrintSpecie ()

Saída

Agora vamos adicionar mais algumas funcionalidades nas classes infantis. Toda classe herda as propriedades e funções comuns da classe pai, mas a classe infantil pode ter uma classe extra que se destina a esta classe em particular. Agora vamos criar algumas propriedades e funções extras no cachorro, e aula de gatos.

#Classe de pais
Animal de classe:
#Initialization Função
#initilização O nome do animal e tipo de espécie
def __init __ (self, nome, especie_type):
auto.nome = nome
auto.especie_type = specie_type
#uma função para imprimir o nome do animal
def PrintName (self):
print ("O nome do animal é:", eu.nome)
#uma função para imprimir o tipo de espécie animal
Def PrintSpecie (self):
print ("O tipo de espécie é:", eu.espécie_type)
#Criando a classe de cães como classe infantil de classe de animais
Cão de classe (animal):
#Using super () função
#PEPEN NOME é funcionalidade recém -adicionada
def __init __ (self, nome, especie_type, pet_name):
super().__init __ (nome, especie_type)
auto.pet_name = pet_name
#Criando uma nova função
def PrintPetName (self):
print ("O nome do animal de estimação é:", eu.nome do animal de estimação)
#agora a classe de cães tem acesso a todas as funções e propriedades da classe de animais
#Criando o objeto de classe de cachorro
Dogobj = cachorro ("cachorro", "carnívoro", "max")
DOGOBJ.printName ()
DOGOBJ.PrintSpecie ()
DOGOBJ.PrintpetName ()
#Creating the Cat Class como classe infantil de classe de animais
Cat Cat (Animal):
#A função de iniciativa da classe CAT
#Using super () função
#Adding Food e Pet_Name Properties
def __init __ (self, nome, especie_type, comida, pet_name):
super().__init __ (nome, especie_type)
auto.comida = comida
auto.pet_name = pet_name
#Now função para acessar informações alimentares
Def PrintFood (self):
impressão ("O gato gosta:", eu.comida)
#Now função para o nome do animal de estimação
def PrintPetName (self):
print ("O nome do animal de estimação é:", eu.nome do animal de estimação)
#agora a classe de gatos tem acesso a todas as funções e propriedades da classe de animais
#Criando o objeto de classe Cat
CATOBJ = CAT ("CAT", "Mamíferos Carnívoros", "Biscoito", "Daisy")
CATOBJ.printName ()
CATOBJ.PrintSpecie ()

Saída

As funções que estão substituindo

A substituição da função é o conceito importante na herança. Uma função é chamada de função substituída se o nome da função for o mesmo nas classes de pais e filhos, mas a implementação ou funcionalidade da função é diferente em cada classe. Vamos ver o exemplo de função substituída na classe de animais. No exemplo abaixo dado, temos uma função de comer nas classes de animais e em suas classes infantis (cachorro e gato) também. O nome da função é o mesmo nas classes, mas a implementação é diferente.

#Classe de pais
Animal de classe:
Def Eat (self):
Imprimir ("Todos os animais comem comida")
#creating objeto
Animalobj = Animal ()
#Função de Calcário
Animalobj.comer()
#Class de cães de criação
Cão de classe (animal):
Def Eat (self):
Imprimir ("o cachorro come carne")
#creating objeto
DOGOBJ = cachorro ()
#Função de Calcário
DOGOBJ.comer()
Cat Cat (Animal):
Def Eat (self):
Imprima ("O gato come biscoitos e alguma comida especial")
#creating objeto
CATOBJ = CAT ()
#Função de Calcário
CATOBJ.comer()

Saída

Conclusão

A herança é um dos conceitos fundamentais de linguagens de programação orientadas a objetos. Ao usar herança, criamos as classes infantis que herdam todas as funções e propriedades da classe pai. A herança promove a reutilização do código. Este artigo explica a herança em python com exemplos.