• Matéria: Informática
  • Autor: pamelagrcosta
  • Perguntado 2 anos atrás

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

respondido por: valeriacobo
5

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.

respondido por: reuabg
1

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

Anexos:
Perguntas similares