Questão de Programação — Programação Orientada a Objetos — FGV 2025
Programação›Programação Orientada a Objetos
Código
fg106590
Banca
FGV
Órgão
CGE-SP
Ano
2025
Nível
Superior
Cargo
Auditor Estadual de Controle - Tecnologia da Informação - tarde
Considere um sistema desenvolvido com base nos princípios da Orientação a Objetos. O sistema possui uma classe base abstrata Funcionario e duas classes derivadas: Gerente e Vendedor.
A classe Funcionario define um método calcularSalario() que é implementado de forma diferente em Gerente (com bônus de gestão) e Vendedor (com comissão de vendas). A capacidade de utilizar uma referência do tipo Funcionario para chamar o método calcularSalario() e ter a versão correta do método (Gerente ou Vendedor) sendo executada em tempo de execução, é uma característica fundamental do seguinte conceito da Orientação a Objetos:
Apolimorfismo, especificamente o polimorfismo de inclusão.
Bencapsulamento, protegendo os dados internos das classes
Cherança, definindo a relação 'é um tipo de' entre as classes.
Dabstração, garantindo que apenas detalhes essenciais sejam expostos.
Ecoesão, medindo o quão relacionados estão os elementos dentro de um módulo.
Revelar gabarito e comentário▾
GabaritoA — polimorfismo, especificamente o polimorfismo de inclusão.
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: letra A. O fenômeno descrito — utilizar uma referência do tipo Funcionario para chamar o método calcularSalario() e ter a versão correta executada em tempo de execução — é a essência do polimorfismo, mais especificamente o polimorfismo de inclusão (ou subtipo). Este conceito permite que objetos de classes derivadas sejam tratados como objetos da classe base, e o método adequado seja selecionado dinamicamente com base no tipo real do objeto.
Polimorfismo
1De inclusão (subtipo)
Referência de superclasse
Método resolvido em execução
Ex.: Funcionario → calcularSalario()
2De sobrecarga (ad hoc)
Mesmo nome, parâmetros diferentes
Resolvido em compilação
LEVEL · soulevel.com.br
Análise das alternativas
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa descreve exatamente o polimorfismo de inclusão: uma referência de superclasse (ou interface) invoca um método que é implementado de forma diferente nas subclasses, com resolução tardia (late binding). O exemplo de Funcionario, Gerente e Vendedor é clássico.
Alternativa B — ❌ Incorreta
Encapsulamento refere-se à proteção dos dados internos de uma classe, escondendo detalhes de implementação e expondo apenas interfaces. Não está relacionado à chamada polimórfica de métodos.
Alternativa C — ❌ Incorreta
Herança é o mecanismo que permite que uma classe derive de outra, estabelecendo a relação "é um tipo de". A herança é a base estrutural para o polimorfismo, mas a capacidade de invocar o método correto em tempo de execução é uma característica do polimorfismo, não da herança em si. Muitos candidatos confundem os dois conceitos.
NÃO CAIA NESSA!
A banca sabe que herança e polimorfismo andam juntos. O enunciado menciona explicitamente "capacidade de utilizar uma referência do tipo Funcionario para chamar o método... e ter a versão correta executada em tempo de execução". Isso é a definição de polimorfismo. Herança é o que permite que Gerente e Vendedor sejam Funcionario, mas a ação descrita é o polimorfismo.
Alternativa D — ❌ Incorreta
Abstração consiste em modelar classes focando apenas nos detalhes essenciais, ignorando aspectos irrelevantes. Classes abstratas e interfaces são ferramentas de abstração, mas o comportamento descrito não é abstração, e sim polimorfismo.
Alternativa E — ❌ Incorreta
Coesão mede o grau de relacionamento entre os elementos de um módulo (classe, método). Alta coesão significa que as responsabilidades estão bem focadas. Não há relação com a chamada polimórfica.
Resumo dos quatro pilares da POO
Conceito
Descrição
Relação com o enunciado
Polimorfismo
Capacidade de um objeto assumir várias formas; uma referência de superclasse invoca método da subclasse correta em tempo de execução.
✅ Diretamente descrito.
Herança
Mecanismo de reúso: subclasses herdam atributos e métodos da superclasse.
É pré-requisito, mas não o fenômeno central.
Encapsulamento
Proteção dos dados internos, acesso controlado por métodos públicos.
Não se aplica.
Abstração
Foco nos aspectos essenciais, ocultando complexidade.
Não se aplica.
PEGA ESSA DICA!
Em questões de POO, identifique a palavra-chave. "Referência de superclasse chamando método de subclasse" = polimorfismo. "Reúso de código" = herança. "Esconder dados" = encapsulamento. "Simplificar complexidade" = abstração.