Pular para o conteúdo principal

Questão de Programação — Programação Orientada a Objetos — Quadrix 2024

ProgramaçãoProgramação Orientada a Objetos
Código
qg347826
Banca
Quadrix
Órgão
COREN-PR
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Acerca da programação orientada a objetos (POO), da linguagem de programação Python e da linguagem JavaScript, julgue o item a seguir.Na POO, polimorfismo é a capacidade de uma classe derivada de herdar métodos e propriedades de uma classe base.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Polimorfismo na Programação Orientada a Objetos

Gabarito: ERRADO. A afirmativa confunde polimorfismo com herança: polimorfismo é a capacidade de um mesmo método/atributo se comportar de formas diferentes em objetos distintos, enquanto herança é o mecanismo pelo qual uma classe derivada herda métodos e propriedades de uma classe base. A banca trocou os conceitos — o item descreve herança, não polimorfismo.

Na Programação Orientada a Objetos (POO), os quatro pilares fundamentais são: abstração, encapsulamento, herança e polimorfismo. Cada um tem um papel distinto, e é exatamente essa distinção que a questão explora.

Herança é o mecanismo que permite que uma classe (subclasse ou classe derivada) aproveite atributos e métodos de outra classe (superclasse ou classe base). É uma relação "é um" (ex.: Cachorro é um Animal). A subclasse herda tudo o que a superclasse define, podendo adicionar novos membros ou sobrescrever os existentes. É a base para a reutilização de código e para a criação de hierarquias de classes.

Polimorfismo (do grego, "muitas formas") é a capacidade de um mesmo método (ou operação) se comportar de maneiras diferentes dependendo do objeto que o invoca. Em termos práticos, significa que objetos de classes diferentes podem responder à mesma mensagem (chamada de método) de formas distintas. O polimorfismo pode ser:

  • Estático (sobrecarga/overload): ocorre dentro da mesma classe, quando há métodos com o mesmo nome, mas com assinaturas diferentes (parâmetros diferentes). A decisão de qual método chamar é feita em tempo de compilação.

  • Dinâmico (sobrescrita/override): ocorre entre classes diferentes, quando uma subclasse redefine um método da superclasse. A decisão de qual implementação executar é feita em tempo de execução, com base no tipo real do objeto.

Um exemplo clássico: uma classe Animal define o método fazerSom(). As subclasses Cachorro e Gato sobrescrevem esse método, cada uma com sua implementação ("Au au" e "Miau"). Ao chamar fazerSom() em uma referência do tipo Animal, o comportamento será diferente conforme o objeto real seja um Cachorro ou um Gato. Isso é polimorfismo dinâmico.

A confusão entre herança e polimorfismo é comum, mas a distinção é clara: herança é o mecanismo de reutilização de código; polimorfismo é a capacidade de um mesmo método ter múltiplas formas de comportamento. A afirmativa do enunciado descreve exatamente a herança, não o polimorfismo.

NÃO CAIA NESSA!

A banca trocou os conceitos de herança e polimorfismo. O candidato que memoriza as definições de forma superficial pode marcar "Certo", achando que a frase descreve polimorfismo. Mas a frase "capacidade de uma classe derivada de herdar métodos e propriedades de uma classe base" é a definição literal de herança. Polimorfismo seria algo como "capacidade de um mesmo método se comportar de formas diferentes em objetos distintos". Fique atento a essas trocas — elas são frequentes em provas de POO.

POO — 4 pilares
  • 1Abstração
  • 2Encapsulamento
  • 3Herança
    • Classe derivada herda métodos/propriedades da base
    • Relação "é um"
    • Reutilização de código
  • 4Polimorfismo
    • Mesmo método com comportamentos diferentes
    • Estático (sobrecarga)
      • Mesma classe, assinaturas diferentes
    • Dinâmico (sobrescrita)
      • Subclasse redefine método da superclasse
LEVEL · soulevel.com.br

Item — ❌ ERRADO

A afirmativa está errada porque descreve o conceito de herança, não de polimorfismo. Herança é o mecanismo pelo qual uma classe derivada (subclasse) herda métodos e propriedades de uma classe base (superclasse). Polimorfismo, por sua vez, é a capacidade de um mesmo método (ou operação) se comportar de maneiras diferentes dependendo do objeto que o invoca. A banca inverteu os conceitos, e o item deve ser julgado como ERRADO.

Gabarito: ERRADO

Link permanente: /questoes/qg347826