Questão de Programação — Programação Orientada a Objetos — INSTITUTO AOCP 2025
Programação›Programação Orientada a Objetos
Código
qg539615
Banca
INSTITUTO AOCP
Órgão
IF-MS
Ano
2025
Nível
Médio
Cargo
Técnico de Tecnologia da Informação
A Orientação a Objetos (OO) é um paradigma de programação baseado na modelagem de sistemas por meio de objetos, que representam entidades do mundo real. Cada objeto possui atributos (dados) e métodos (comportamentos), encapsulando informações e funcionalidades. Um dos conceitos fundamentais de OO é o conceito de polimorfismo. Acerca do polimorfismo no contexto de OO, assinale a alternativa correta.
AHabilita métodos com o mesmo nome a terem comportamentos diferentes dependendo do contexto, facilitando a flexibilidade do código.
BDefine apenas os detalhes essenciais de um objeto, ocultando sua implementação interna.
CTrata-se de um método especial de uma classe usado para inicializar objetos, atribuindo valores iniciais aos seus atributos no momento de sua criação.
DÉ um método usado para liberar recursos quando um objeto não é mais necessário, sendo destruído ou descartado.
ERestringe o acesso direto aos atributos de um objeto, permitindo a manipulação apenas por meio de métodos específicos.
Revelar gabarito e comentário▾
GabaritoA — Habilita métodos com o mesmo nome a terem comportamentos diferentes dependendo do contexto, facilitando a flexibilidade do código.
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 Programação Orientada a Objetos
Gabarito: letra A. O polimorfismo é o princípio da POO que permite que métodos com o mesmo nome tenham comportamentos diferentes conforme o contexto, seja por sobrecarga (mesma classe, assinaturas diferentes) ou por sobrescrita (classes diferentes, via herança). As demais alternativas descrevem outros conceitos da orientação a objetos: abstração (B), construtor (C), destrutor (D) e encapsulamento (E).
O polimorfismo é um dos quatro pilares fundamentais da programação orientada a objetos, ao lado de abstração, encapsulamento e herança. A palavra vem do grego e significa "muitas formas" (poli = muitas, morphos = formas). Na prática, o polimorfismo permite que um mesmo nome de método seja usado para executar tarefas diferentes, dependendo do objeto que o invoca ou dos argumentos passados.
Existem dois tipos principais de polimorfismo:
Polimorfismo estático (sobrecarga ou overload): ocorre dentro da mesma classe, quando dois ou mais métodos têm o mesmo nome, mas assinaturas diferentes (número ou tipo de parâmetros). O compilador decide qual método executar em tempo de compilação, com base nos argumentos fornecidos.
Polimorfismo dinâmico (sobrescrita ou override): ocorre entre classes diferentes, quando uma subclasse redefine um método herdado da superclasse. A decisão de qual método executar é tomada em tempo de execução, com base no tipo real do objeto.
Um exemplo clássico: imagine uma classe Animal com o método emitirSom(). As subclasses Cachorro e Gato sobrescrevem esse método para emitir "Au au" e "Miau", respectivamente. Ao chamar emitirSom() 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 banca explora a confusão entre os quatro pilares da POO. Cada alternativa incorreta descreve corretamente um outro conceito, mas não o polimorfismo. A chave para acertar é reconhecer a definição exata de cada pilar e identificar qual deles se refere à capacidade de um mesmo método ter comportamentos distintos.
Guarde a fronteira entre os pilares: polimorfismo é sobre comportamentos diferentes para o mesmo nome de método; abstração é sobre esconder detalhes de implementação; encapsulamento é sobre restringir acesso aos dados; construtor e destrutor são métodos especiais do ciclo de vida do objeto. É exatamente nessa fronteira que as alternativas se dividem.
Polimorfismo
1Mesmo nome de método
Comportamentos diferentes
Conforme o contexto
2Tipos
Estático (sobrecarga)
Mesma classe
Assinaturas diferentes
Dinâmico (sobrescrita)
Classes diferentes
Via herança
3Vantagem
Flexibilidade do código
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
Esta é a definição precisa de polimorfismo. A alternativa afirma que ele "habilita métodos com o mesmo nome a terem comportamentos diferentes dependendo do contexto", o que corresponde exatamente ao conceito. O polimorfismo estático (sobrecarga) depende do contexto dos argumentos, enquanto o dinâmico (sobrescrita) depende do contexto da classe do objeto. Ambos os casos se encaixam na descrição, e a flexibilidade do código é uma das principais vantagens desse princípio.
Alternativa B — ❌ Incorreta
Esta alternativa descreve o conceito de abstração, não de polimorfismo. A abstração consiste em modelar apenas os detalhes essenciais de um objeto, ocultando sua implementação interna. É o processo de focar no que o objeto faz, sem se preocupar com como ele faz. O polimorfismo, por sua vez, trata da capacidade de um mesmo método ter comportamentos diferentes, não de ocultar detalhes.
Alternativa C — ❌ Incorreta
Esta alternativa descreve o construtor, um método especial de uma classe usado para inicializar objetos, atribuindo valores iniciais aos seus atributos no momento da criação. O construtor é invocado automaticamente quando um objeto é instanciado. Embora seja um conceito importante da POO, não tem relação com o polimorfismo, que trata da variação de comportamento de métodos.
Alternativa D — ❌ Incorreta
Esta alternativa descreve o destrutor, um método usado para liberar recursos quando um objeto não é mais necessário, sendo destruído ou descartado. Em linguagens como C++, o destrutor é chamado explicitamente; em Java e Python, a coleta de lixo (garbage collector) gerencia a destruição de objetos. Novamente, é um conceito válido da POO, mas não é polimorfismo.
Alternativa E — ❌ Incorreta
Esta alternativa descreve o encapsulamento, que restringe o acesso direto aos atributos de um objeto, permitindo a manipulação apenas por meio de métodos específicos (getters e setters). O encapsulamento protege a integridade dos dados e esconde a implementação interna. É um pilar distinto do polimorfismo, que se concentra na variação de comportamento dos métodos.
NÃO CAIA NESSA!
A banca mistura os quatro pilares da POO em uma única questão. O candidato que não domina a definição exata de cada um pode facilmente confundir polimorfismo com abstração ou encapsulamento. A dica é memorizar a essência de cada pilar: polimorfismo = mesmo nome, comportamentos diferentes; abstração = esconder implementação; encapsulamento = restringir acesso; herança = reutilizar código. Com esse mapa mental, você elimina as alternativas erradas rapidamente.