Pular para o conteúdo principal

Questão de Programação — Programação Orientada a Objetos — INSTITUTO AOCP 2024

ProgramaçãoProgramação Orientada a Objetos
Código
qg263620
Banca
INSTITUTO AOCP
Órgão
UFS
Ano
2024
Nível
Médio
Cargo
Técnico em Tecnologia da Informação - Classe D
Enquanto desenvolve um sistema para a Universidade Federal de Sergipe, que utiliza o paradigma de programação orientada a objetos, você incorpora vários conceitos importantes, um deles é o polimorfismo. Acerca do conceito de polimorfismo, assinale a alternativa correta.
  1. ADiz respeito a moldes para criar objetos. Definem atributos (dados) e métodos (funções) que os objetos podem ter.
  2. BRefere-se a instâncias de classes e contém valores específicos para os atributos.
  3. CEnvolve ocultar detalhes internos de uma classe e fornecer interfaces para interagir com os objetos. Isso ajuda a proteger os dados e o comportamento de uma classe.
  4. DPermite que objetos de classes diferentes sejam tratados de maneira semelhante. Isso é alcançado usando métodos com o mesmo nome em classes diferentes.
  5. EPermite que uma classe herde atributos e métodos de outra classe. Isso promove a reutilização de código e a criação de hierarquias de classes.
Revelar gabarito e comentário

GabaritoD — Permite que objetos de classes diferentes sejam tratados de maneira semelhante. Isso é alcançado usando métodos com o mesmo nome em classes diferentes.

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: letra D. O polimorfismo permite que objetos de classes diferentes sejam tratados de maneira semelhante, alcançado pelo uso de métodos com o mesmo nome em classes diferentes — exatamente o que a alternativa D descreve. Esse é um dos quatro pilares da POO, ao lado de abstração, encapsulamento e herança.

O polimorfismo, do grego "muitas formas", é a capacidade de um objeto assumir diferentes formas ou comportamentos. Na prática, isso significa que uma mesma chamada de método pode executar implementações diferentes, dependendo do tipo do objeto que a recebe. Isso é alcançado principalmente por dois mecanismos: a sobrescrita (override) e a sobrecarga (overload).

Na sobrescrita, uma subclasse redefine um método da superclasse, mantendo o mesmo nome e a mesma assinatura, mas com comportamento próprio. Por exemplo, se temos uma classe Animal com o método emitirSom(), e as classes Cachorro e Gato sobrescrevem esse método, cada uma emitirá um som diferente. Ao chamar emitirSom() em uma referência do tipo Animal, o comportamento executado será o da classe real do objeto — isso é a ligação tardia (late binding), resolvida em tempo de execução.

Na sobrecarga, uma mesma classe define vários métodos com o mesmo nome, mas com assinaturas diferentes (diferentes tipos ou quantidades de parâmetros). O método a ser executado é decidido em tempo de compilação, com base nos argumentos passados. Por exemplo, um método calcular() pode aceitar dois inteiros ou três inteiros, realizando operações distintas.

O polimorfismo é um dos pilares que promovem a reutilização de código e a flexibilidade do software, permitindo que um código genérico trabalhe com diferentes tipos de objetos sem precisar conhecê-los especificamente. É o que possibilita, por exemplo, que uma lista de objetos Animal contenha Cachorro, Gato e Pato, e que ao percorrê-la chamando emitirSom(), cada um execute seu próprio som.

A banca explora a confusão entre os quatro pilares da POO: abstração, encapsulamento, herança e polimorfismo. Cada alternativa incorreta descreve um desses outros conceitos, e o candidato precisa identificar qual deles corresponde à definição de polimorfismo. Guarde a fronteira entre eles: é exatamente nela que as alternativas se dividem.

1Abstração
Focar no essencial
2Encapsulamento
Ocultar detalhes internos
Proteger dados e comportamento
3Herança
Reutilizar código
Hierarquia de classes
4Polimorfismo
Muitas formas
Métodos com o mesmo nome
Sobrescrita (override)
Sobrecarga (overload)
Pilares da POO
LEVELsoulevel.com.br
Pilares da POO: Abstração (Focar no essencial); Encapsulamento (Ocultar detalhes internos, Proteger dados e comportamento); Herança (Reutilizar código, Hierarquia de classes); Polimorfismo (Muitas formas, Métodos com o mesmo nome, Sobrescrita (override), Sobrecarga (overload))

Alternativa A — ❌ Incorreta

Esta alternativa descreve classes, não polimorfismo. Classes são moldes (ou modelos) para criar objetos, definindo seus atributos (dados) e métodos (funções). O polimorfismo, por sua vez, trata do comportamento de métodos em objetos de classes diferentes, não da definição de moldes.

Alternativa B — ❌ Incorreta

Esta alternativa descreve objetos, que são instâncias de classes e contêm valores específicos para os atributos. O polimorfismo não se refere a instâncias, mas à capacidade de tratar objetos de classes diferentes de forma semelhante.

Alternativa C — ❌ Incorreta

Esta alternativa descreve o encapsulamento, que envolve ocultar detalhes internos de uma classe e fornecer interfaces para interagir com os objetos, protegendo dados e comportamento. O polimorfismo não trata de ocultação, mas de comportamento polimórfico.

Alternativa D — ✅ Correta ⟵ GABARITO

Esta é a definição correta de polimorfismo. Ele permite que objetos de classes diferentes sejam tratados de maneira semelhante, alcançado pelo uso de métodos com o mesmo nome em classes diferentes. Isso é feito por meio da sobrescrita (override) e da sobrecarga (overload), permitindo que uma mesma chamada de método execute comportamentos distintos conforme o objeto.

Alternativa E — ❌ Incorreta

Esta alternativa descreve a herança, que permite que uma classe herde atributos e métodos de outra classe, promovendo reutilização de código e hierarquias de classes. O polimorfismo, embora frequentemente associado à herança, é um conceito distinto, focado no comportamento de métodos.

NÃO CAIA NESSA!

A banca troca os pilares da POO entre si. As alternativas A, B, C e E descrevem, respectivamente, classe, objeto, encapsulamento e herança — todos conceitos vizinhos ao polimorfismo. O candidato que não domina a distinção entre eles cai facilmente. Lembre-se: polimorfismo é "muitas formas" — a capacidade de um mesmo método se comportar de maneiras diferentes em classes diferentes.

PEGA ESSA DICA!

Para fixar, monte uma tabela mental com os quatro pilares: Abstração (focar no essencial), Encapsulamento (esconder detalhes), Herança (reutilizar código via hierarquia) e Polimorfismo (muitas formas de um mesmo método). Nas questões, identifique a palavra-chave: "moldes" → classe; "instâncias" → objeto; "ocultar" → encapsulamento; "herdar" → herança; "métodos com o mesmo nome" → polimorfismo.

Gabarito: letra D

Link permanente: /questoes/qg263620