Pitão

Herança Python

Herança Python

O Python é uma linguagem de programação orientada a objetos. Em uma linguagem de programação orientada a objetos, criamos as classes e executamos 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 é aproveitada com os dois conceitos principais:

  1. Classe mãe ou classe base
  2. Classe filha ou classe derivada

A classe pai é a classe que permite que outras classes sejam herdadas de. É também chamada de Classe Base. A classe Child ou classe derivada é aquela classe que herda todas as propriedades e funções de outra classe. A herança promove vários benefícios, i.e., é a representação do fenômeno de herança do mundo real. Isso incentiva a reutilização do código. Se uma função é 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 realizar tarefas semelhantes. A herança é aplicada em vários níveis. Por exemplo, se a classe B é herdada de A e a classe C é herdada da classe B, então a classe C tem todas as propriedades da classe B e também da classe A. A sintaxe da herança é a seguinte:

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

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

Este artigo descreve e cobre todos os aspectos da herança do Python.

Implementação de herança em Python

A herança pode ser aplicada em várias situações. Vamos supor que você esteja construindo um sistema de software para uma universidade. Pode ser composto por várias partes interessadas, como alunos, professores, funcionários, etc. Cada 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 pessoal, e todas as classes dos stakeholders podem herdar todas as propriedades e funções comuns da classe pessoal. Neste caso, não há necessidade de escrever as propriedades comuns em cada classe repetidamente. Da mesma forma, podemos considerar uma classe animal. Existem centenas de tipos de animais neste mundo. Todos os animais comem, dormem e também têm algumas espécies. Este conceito também pode ser implementado usando herança.

Vamos considerar o animal como uma superclasse e implementar a herança. No exemplo abaixo dado, criamos uma classe de animais. A classe animal é a classe mãe. Além disso, criamos as classes Dog e Cat que herdam as propriedades e funções da classe animal. A palavra-chave pass é usada na classe filha, quando não precisamos implementar nenhuma funcionalidade estendida na classe filha.

#creating parent class
classe Animal:
#initialization function
#initilization o nome do animal e o tipo de espécie
def __init __ (self, name, specie_type):
auto.nome = nome
auto.specie_type = specie_type
# uma função para imprimir o nome do animal
def printname (self):
print ("O nome do animal é:", self.nome)
# uma função para imprimir o tipo de espécie animal
def printspecie (self):
print ("O tipo de espécie é:", self.specie_type)
#criando a classe cão como classe filha da classe animal
classe Cachorro (Animal):
# nenhuma 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
#creating the dog class object
dogObj = Cachorro ("Cachorro", "carnívoro")
dogObj.printname ()
dogObj.printspecie ()
#criando a classe gato como classe filha da classe animal
classe Cat (Animal):
# a função de inicialização da classe cat
def __init __ (self):
#calling e usando a função de inicialização da classe animal
Animal.__init __ (próprio, "gato", "mamífero carnívoro")
# agora a classe gato tem acesso a todas as funções e propriedades da classe animal
#criando o objeto de classe cat
catObj = Cat ()
catObj.printname ()
catObj.printspecie ()

Resultado

O "Animal.__init __ (próprio, ”gato”, ”mamífero carnívoro”) ” chamada é a função de inicialização da classe Animal.

A função super ()

O Python fornece uma função super () embutida 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 __ (próprio, ”gato”, ”mamífero carnívoro”) ” mas a função super () aponta automaticamente para a classe pai. Vamos usar a função super.

#creating parent class
classe Animal:
#initialization function
#initilization o nome do animal e o tipo de espécie
def __init __ (self, name, specie_type):
auto.nome = nome
auto.specie_type = specie_type
# uma função para imprimir o nome do animal
def printname (self):
print ("O nome do animal é:", self.nome)
# uma função para imprimir o tipo de espécie animal
def printspecie (self):
print ("O tipo de espécie é:", self.specie_type)
#criando a classe cão como classe filha da classe animal
classe Cachorro (Animal):
#using função super ()
def __init __ (self, name, specie_type):
super().__init __ (nome, tipo_espécie)
# agora a classe de cães tem acesso a todas as funções e propriedades da classe de animais
#creating the dog class object
dogObj = Cachorro ("Cachorro", "carnívoro")
dogObj.printname ()
dogObj.printspecie ()
#criando a classe gato como classe filha da classe animal
classe Cat (Animal):
# a função de inicialização da classe cat
#using função super ()
def __init __ (self, name, specie_type):
super().__init __ (nome, tipo_espécie)
# agora a classe gato tem acesso a todas as funções e propriedades da classe animal
#criando o objeto de classe cat
catObj = Cat ("gato", "mamífero carnívoro")
catObj.printname ()
catObj.printspecie ()

Resultado

Agora vamos adicionar mais algumas funcionalidades nas classes filhas. Cada classe herda as propriedades e funções comuns da classe pai, mas a classe filha pode ter alguma classe extra destinada a esta classe particular. Agora vamos criar algumas propriedades e funções extras nas classes cachorro e gato.

#creating parent class
classe Animal:
#initialization function
#initilization o nome do animal e o tipo de espécie
def __init __ (self, name, specie_type):
auto.nome = nome
auto.specie_type = specie_type
# uma função para imprimir o nome do animal
def printname (self):
print ("O nome do animal é:", self.nome)
# uma função para imprimir o tipo de espécie animal
def printspecie (self):
print ("O tipo de espécie é:", self.specie_type)
#criando a classe cão como classe filha da classe animal
classe Cachorro (Animal):
#using função super ()
#pet name é uma funcionalidade recém-adicionada
def __init __ (self, name, specie_type, pet_name):
super().__init __ (nome, tipo_espécie)
auto.pet_name = pet_name
#criando uma nova função
def printpetname (self):
print ("O nome do animal é:", self.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
#creating the dog class object
dogObj = Cachorro ("Cachorro", "carnívoro", "Max")
dogObj.printname ()
dogObj.printspecie ()
dogObj.printpetname ()
#criando a classe gato como classe filha da classe animal
classe Cat (Animal):
# a função de inicialização da classe cat
#using função super ()
#adding food and pet_name properties
def __init __ (self, name, specie_type, food, pet_name):
super().__init __ (nome, tipo_espécie)
auto.comida = comida
auto.pet_name = pet_name
# nova função para acessar informações sobre alimentos
def printfood (self):
print ("O gato gosta de:", self.Comida)
# nova função para o nome do animal de estimação
def printpetname (self):
print ("O nome do animal é:", self.nome do animal de estimação)
# agora a classe gato tem acesso a todas as funções e propriedades da classe animal
#criando o objeto de classe cat
catObj = Gato ("gato", "mamífero carnívoro", "Biscoito", "Margarida")
catObj.printname ()
catObj.printspecie ()

Resultado

As funções substituindo

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

#creating parent class
classe Animal:
def comer (eu):
imprimir ("Todos os animais comem comida")
#creating object
animalObj = Animal ()
#calling function
animalObj.comer()
#creating dog class
classe Cachorro (Animal):
def comer (eu):
imprimir ("O cachorro come carne")
#creating object
dogObj = Cachorro ()
#calling function
dogObj.comer()
classe Cat (Animal):
def comer (eu):
imprimir ("O gato come biscoitos e um pouco de comida especial")
#creating object
catObj = Cat ()
#calling function
catObj.comer()

Resultado

Conclusão

Herança é um dos conceitos fundamentais das linguagens de programação orientadas a objetos. Ao usar a herança, criamos as classes filhas 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.

Top jogos do Oculus App Lab
Se você é proprietário de um fone de ouvido Oculus, deve estar informado sobre o carregamento lateral. Sideload é o processo de instalação de conteúdo...
Os 10 melhores jogos para jogar no Ubuntu
A plataforma Windows tem sido uma das plataformas dominantes para jogos devido à grande porcentagem de jogos que estão sendo desenvolvidos hoje para o...
5 melhores jogos de arcade para Linux
Hoje em dia, os computadores são máquinas sérias usadas para jogos. Se você não pode obter a nova pontuação máxima, você saberá o que quero dizer. Nes...