Pular para o conteúdo principal

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

ProgramaçãoProgramação Orientada a Objetos
Código
qg026005
Banca
Quadrix
Órgão
CREA-GO
Ano
2023
Nível
Superior
Cargo
Analista de Área - T.I
A respeito dos conceitos de hardware, dos comandos de repetição utilizados na programação e dos conceitos abordados na programação orientada a objetos (POO), julgue o item.A propriedade da POO que permite que um objeto possa ser tratado de várias formas, assumindo diferentes comportamentos é denominada abstração.
  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 versus abstração na POO

Gabarito: E — ERRADO. A propriedade da programação orientada a objetos (POO) que permite que um objeto seja tratado de várias formas, assumindo diferentes comportamentos, é o polimorfismo, e não a abstração. A abstração, por sua vez, é o mecanismo que oculta detalhes de implementação e expõe apenas o essencial. O item troca os dois conceitos, incorrendo em erro conceitual clássico.

A programação orientada a objetos é um paradigma de programação baseado no conceito de "objetos", que podem conter dados (atributos) e códigos (métodos). Os quatro pilares fundamentais da POO são: abstração, encapsulamento, herança e polimorfismo. Cada um tem um papel distinto, e é exatamente essa distinção que a banca explora nesta questão.

A abstração é o processo de modelar entidades do mundo real no mundo computacional, focando apenas nas características e comportamentos essenciais, ignorando os detalhes irrelevantes. Na prática, ela é alcançada por meio de classes abstratas e interfaces, que definem "o que" um objeto faz, sem especificar "como" ele faz. Por exemplo, uma classe abstrata Animal pode definir o método emitirSom(), mas não implementa o som específico de cada animal — isso fica para as subclasses.

O polimorfismo, por sua vez, é a capacidade de um objeto assumir várias formas, ou seja, de uma mesma referência (ou chamada de método) se comportar de maneiras diferentes dependendo do objeto concreto ao qual está associada. Ele se manifesta de duas formas principais: o polimorfismo estático (sobrecarga/overload), que ocorre dentro da mesma classe quando métodos têm o mesmo nome, mas assinaturas diferentes (parâmetros ou tipos distintos); e o polimorfismo dinâmico (sobrescrita/override), que ocorre entre classes diferentes, quando uma subclasse redefine um método da superclasse, permitindo que um objeto seja tratado pelo tipo da superclasse, mas execute o comportamento da subclasse.

Para fixar a diferença, veja a comparação:

Critério

Abstração

Polimorfismo

Conceito

Ocultar detalhes de implementação, expondo apenas o essencial

Permitir que um objeto assuma várias formas/comportamentos

Como é alcançada

Classes abstratas e interfaces

Sobrecarga (estático) e sobrescrita (dinâmico)

Pergunta que responde

"O que o objeto faz?"

"Como o objeto se comporta em diferentes contextos?"

Exemplo

Interface Forma com método calcularArea()

Uma variável do tipo Forma que recebe um Circulo ou um Quadrado e chama calcularArea() de cada um

A pegadinha desta questão é justamente a troca de conceitos: a banca descreve o polimorfismo, mas o nomeia como abstração. O candidato que não domina a definição precisa de cada pilar acaba marcando "Certo", quando o correto é "Errado".

NÃO CAIA NESSA!

A banca adora inverter os pilares da POO. Aqui, ela descreve o polimorfismo ("objeto tratado de várias formas, assumindo diferentes comportamentos") e o chama de abstração. Fique atento: abstração é sobre esconder complexidade; polimorfismo é sobre múltiplos comportamentos. Se a frase falar em "várias formas" ou "diferentes comportamentos", o conceito é polimorfismo, não abstração.

1Abstração
oculta detalhes de implementação
expõe apenas o essencial
classes abstratas e interfaces
2Encapsulamento
protege os dados internos
acesso controlado por métodos
3Herança
reutilização de código
relação "é um"
4Polimorfismo
objeto tratado de várias formas
diferentes comportamentos
sobrecarga (estático)
sobrescrita (dinâmico)
Pilares da POO
LEVELsoulevel.com.br
Pilares da POO: Abstração (oculta detalhes de implementação, expõe apenas o essencial, classes abstratas e interfaces); Encapsulamento (protege os dados internos, acesso controlado por métodos); Herança (reutilização de código, relação "é um"); Polimorfismo (objeto tratado de várias formas, diferentes comportamentos, sobrecarga (estático), sobrescrita (dinâmico))

Item — ❌ Errado

A afirmação está incorreta porque descreve o polimorfismo e o rotula como abstração. O polimorfismo é exatamente a capacidade de um objeto ser tratado de várias formas, assumindo diferentes comportamentos — seja por sobrecarga (mesmo método com assinaturas diferentes) ou por sobrescrita (subclasses redefinindo métodos da superclasse). A abstração, por outro lado, é o processo de modelar o mundo real, ocultando detalhes de implementação e expondo apenas o essencial, geralmente por meio de classes abstratas e interfaces. Portanto, o item está errado.

Gabarito: E — ERRADO.

Link permanente: /questoes/qg026005