Pular para o conteúdo principal

Questão de Programação — Programação Orientada a Objetos — FUNDATEC 2025

ProgramaçãoProgramação Orientada a Objetos
Código
qg474884
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação / Ênfase em Análise de Sistemas / Gerência de Projetos de TI
O polimorfismo em orientação a objetos é tipicamente implementado através de
  1. Aclasses abstratas e interfaces.
  2. Batributos privados e métodos getters/setters.
  3. Cconstrutores de classe.
  4. Dvariáveis estáticas.
  5. Eherança múltipla de implementação.
Revelar gabarito e comentário

GabaritoA — classes abstratas e interfaces.

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 em Orientação a Objetos

Gabarito: alternativa A. O polimorfismo é tipicamente implementado por meio de classes abstratas e interfaces, que definem contratos que as subclasses implementam ou sobrescrevem. Isso permite que objetos de diferentes classes sejam tratados de forma uniforme através de uma referência de tipo comum, caracterizando o polimorfismo de subtipagem (runtime polymorphism).

NÃO CAIA NESSA!

A alternativa E (herança múltipla de implementação) pode confundir, pois em linguagens como Java e C# o polimorfismo não depende de herança múltipla de implementação (que nem é suportada). O polimorfismo é alcançado com herança simples de classes abstratas e/ou implementação de interfaces. Fique atento!

Polimorfismo (OOP)
  • 1Runtime (subtipo)
    • Classes abstratas
      • Métodos abstratos
      • Herança simples
    • Interfaces
      • Contrato
      • Herança múltipla de tipo
  • 2Compile-time (sobrecarga)
    • Construtores
    • Métodos
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Classes abstratas e interfaces são os mecanismos clássicos para definir tipos que podem ter múltiplas implementações. Por exemplo, uma interface Forma com o método desenhar() pode ser implementada por Circulo e Retangulo, que definem sua própria versão do método. Ao referenciar ambos como Forma, o método chamado é o da classe concreta (polimorfismo).

Alternativa B — ❌ Incorreta

Atributos privados e métodos getters/setters estão relacionados ao encapsulamento, não ao polimorfismo. Eles controlam o acesso aos dados, mas não permitem que um mesmo código se comporte de maneiras diferentes baseado no tipo do objeto.

Alternativa C — ❌ Incorreta

Construtores são usados para inicializar objetos; não implementam polimorfismo. Embora exista sobrecarga de construtores (compile-time polymorphism), o termo "polimorfismo" em OOP geralmente se refere ao polimorfismo de subtipagem (runtime), que não é implementado por construtores.

Alternativa D — ❌ Incorreta

Variáveis estáticas pertencem à classe, não a instâncias. Não há relação com polimorfismo, que depende de métodos de instância sobrescritos.

Alternativa E — ❌ Incorreta

Herança múltipla de implementação (várias superclasses com implementação) não é suportada em linguagens como Java e C#. O polimorfismo pode ser alcançado com herança simples de uma classe abstrata e implementação de múltiplas interfaces (herança múltipla de tipo). Portanto, não é o mecanismo típico.

Gabarito: letra A.

Link permanente: /questoes/qg474884