Orientação a objetos é um paradigma aplicado na programação que consiste na interação entre diversas unidades chamadas de objetos. Explique os conceitos de herança e polimorfismo dando exemplos de utilização na linguagem Python.
Respostas
Resposta:
Explicação:
Herança
Assim como na vida real somos um acúmulo de características de nossos antepassados, na orientação a objetos isto também é possível. Na verdade isto é até uma boa prática.
O conceito de herdar é literalmente ser uma cópia de outra classe com algumas características adicionais.
Vamos tomar como base uma classe de pagamento simples, que contém a data de vencimento deste pagamento.
public class Pagamento {
public DateTime Vencimento { get; set; }
}
O pagamento por sua vez pode ser via Boleto, Cartão de Crédito, PayPal, Stripe, MoiP e futuros outros métodos de pagamento poderão existir.Ao invés de tratar todas estas possibilidades dentro da mesma classe, tornando ela grande e complexa de ser gerenciada, podemos aplicar o conceito de herança e criar filhos desta classe.
Polimorfismo
Poli significa muitos e morfo significa formas, então temos a possibilidade de um objeto assumir diversas formas diferentes na orientação a objetos.
Novamente no caso dos pagamentos, embora cada pagamento seja pertinente a uma operadora distinta, ainda temos comportamentos que serão padrão em todos eles.
Vamos tomar como base o método PodeSerPago que nos informa se um pagamento está vencido ou não, se pode ser pago ou não.
public class Pagamento {
public bool PodeSerPago() {
...
}
}
Na classe pai, este comportamento é padrão, ou seja, passado a data de vencimento, caso o pagamento ainda não tenha sido realizado, ele está vencido e não pode ser pago.
Para os pagamentos via Cartão de Crédito e outras formas digitais, não haveria problemas, afinal, os pagamentos neste formato são cobrados em qualquer data e hora.
Porém, os pagamentos via boleto tem um formato diferente onde caso a data de vencimento seja em um fim de semana ou feriado, o mesmo poderá ser pago no próximo dia útil.
Não queremos reescrever a mesma regra de pagamento duas vezes, queremos que ela seja padrão para todos os pagamentos, porém, queremos poder sobrescreve-la caso haja necessidade.
Um exemplo de herança e polimorfismo é o de três classes animal(), cachorro(), gato(). A classe pai animal() pode se subdividir nas classes cachorro() e gato(), pois ambos são tipos específicos de animal e compartilham características em comum. Entretanto, o polimorfismo pode ser aplicado na diferenciação da implementação dos seus métodos.
Herança e polimorfismo
Em programação orientada a objetos, herança e polimorfismo são duas características essenciais a esse paradigma. Suas definições são:
- Herança: herança determina que subclasses de uma classe pai podem herdar métodos e atributos da classe pai, pois são tipos específicos dessa classe;
- Polimorfismo: polimorfismo determina que subclasses podem apresentar atributos e métodos similares, mas a forma com que cada subclasse implementa os métodos é diferente.
Um exemplo de herança e polimorfismo é o de três classes animal(), cachorro(), gato(). A classe pai animal() pode se subdividir nas classes cachorro() e gato(), pois ambos são tipos específicos de animal e compartilham características em comum. Entretanto, o polimorfismo pode ser aplicado na diferenciação da implementação dos seus métodos.
Assim, temos:
class Animal():
def __init__(self, peso: int, cor: str):
self.peso = peso
self.cor = cor
def fazer_barulho(self):
print("Fazer barulho")
class Cachorro(Animal):
def __init__(self, peso: int, cor: str):
super().__init__(peso, cor)
def fazer_barulho(self):
print("Au au")
class Gato(Animal):
def __init__(self, peso: int, cor: str):
super().__init__(peso, cor)
def fazer_barulho(self):
print("Mi au")
if __name__ == "__main__":
an = Animal(10, "Branco")
ca = Cachorro(10, "Preto")
ga = Gato(5, "Amarelo")
an.fazer_barulho()
ca.fazer_barulho()
ga.fazer_barulho()
Para aprender mais sobre herança, acesse:
https://brainly.com.br/tarefa/54393333
#SPJ2