Uma das vantagens da orientação a objetos é a reutilização de código. A herança se aproveita bem desta vantagem. Vamos a seguinte situação: você quer criar uma agenda em Python e, ao salvar um contato, o usuário poderá optar se este contato será pessoal, profissional ou familiar. Concorda que muitos dados (como nome, telefone e endereço) se repetirão em todos estes tipos de contato? Seria um desperdício de tempo se eu tivesse que repetir todos estes atributos em
todas estas classes, então eu crio uma classe pai chamada Pessoa e declaro atributos como nome, endereço e telefone e faço com que as classes Pessoal, Profissional e Familiar herdem dela. Abaixo segue como seria esta implementação:
class Pessoa: nome = "" telefone = "" endereco = "" def __init__(self, nome, telefone, endereco): self.nome = nome self.telefone = telefone self.endereco = endereco
Agora vamos criar a classe filha (vou pegar apenas uma como exemplo, no caso a classe Familiar):
from Pessoa import Pessoa class Familiar(Pessoa): parentesco = "" def __init__(self, parentesco, nome, telefone, endereco): self.parentesco = parentesco Pessoa.__init__(self, nome, telefone, endereco)
Para herdar de alguma classe basta apenas colocar o nome da classe pai entre parenteses na frente do nome da classe filha.
Note que, se a classe pai tem um construtor, ele deve ser chamado no construtor da classe filha.
Vamos colocar a mão na massa!
Crie uma classe pai chamada FormaGeometrica e crie suas classes filhas que se chamarão Quadrado, Retangulo, Triangulo e Circulo. A classe FormaGeometrica deve ter os métodos calculaArea() e calculaPerimetro() e cada uma de suas classes filhas deve sobrescrever estes métodos aplicando-os adequadamente para cada tipo de forma geométrica. Instancie as classes filhas em um arquivo separado, chame seus métodos e mostre os resultados obtidos na tela.
Qualquer dúvida comente o post ou me envie um email.
Boa semana a todos! 😀