Pular para o conteúdo principal

Questão de Engenharia de Software — Orientação a Objetos — FGV 2025

Engenharia de SoftwareOrientação a Objetos
Código
fg104561
Banca
FGV
Órgão
AL-AM
Ano
2025
Nível
Superior
Cargo
Analista Legislativo - Analista de Sistema
Em um sistema de folha de pagamento da Assembleia, o Analista de Sistemas está modelando a hierarquia de funcionários. A classe base Pessoa contém atributos comuns como nome e cpf. A classe Funcionario herda de Pessoa e possui o método calcularRemuneracaoMensal(). No entanto, a forma de cálculo varia radicalmente entre subtipos como Efetivo e Comissionado, e a classe Funcionario por si só nunca deve ser instanciada, servindo apenas como um contrato para as classes filhas.O conceito de Orientação a Objetos aplicado à classe Funcionario para impedir sua instanciação direta, ao mesmo tempo em que impõe a obrigatoriedade de implementação do método calcularRemuneracaoMensal() nas suas subclasses é o(a)
  1. AEncapsulamento, por meio de um construtor privado.
  2. BPolimorfismo, por meio de sobrecarga do método.
  3. CHerança Múltipla, por meio de interfaces.
  4. DAbstração, por meio da definição como Classe Abstrata e método Abstrato.
  5. ECoesão, garantindo a especialização dos métodos
Revelar gabarito e comentário

GabaritoD — Abstração, por meio da definição como Classe Abstrata e método Abstrato.

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”.

Orientação a Objetos – Classe Abstrata e Método Abstrato

Gabarito: letra D. O cenário descreve uma classe Funcionario que não deve ser instanciada e que obriga suas subclasses a implementar o método calcularRemuneracaoMensal(). Esse é exatamente o papel de uma classe abstrata com método abstrato, mecanismo que fornece um contrato para as subclasses sem permitir a criação de objetos da própria classe. A abstração é o conceito central, pois permite modelar a ideia genérica de funcionário sem se preocupar com a implementação concreta.

Conceito

Impede instanciação direta?

Obriga subclasses a implementar método?

Mecanismo principal

Classe Abstrata + Método Abstrato (D)

Sim

Sim

Abstração

Construtor privado (A)

Sim

Não

Encapsulamento

Sobrecarga de método (B)

Não

Não

Polimorfismo

Interface / Herança Múltipla (C)

Sim (interface)

Sim

Contrato, mas não é herança de classe

Coesão (E)

Não

Não

Especialização de responsabilidades

Classe abstrata
  • 1Não pode ser instanciada
  • 2Serve como contrato
    • Método abstrato
      • Sem corpo
      • Obriga implementação nas subclasses
  • 3Exemplo: Funcionario
    • Efetivo
    • Comissionado
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Encapsulamento com construtor privado de fato impede a instanciação direta, mas não impõe a obrigatoriedade de implementação do método nas subclasses. Uma classe com construtor privado pode até ter o método implementado nela mesma, e as subclasses podem ou não sobrescrevê-lo. Não gera o contrato exigido.

Alternativa B — ❌ Incorreta

Polimorfismo por sobrecarga (mesmo nome com parâmetros diferentes) permite que um método se comporte de formas distintas, mas não impede instanciação nem força implementação. A sobrecarga é resolvida em tempo de compilação e não estabelece um contrato de herança.

Alternativa C — ❌ Incorreta

Herança múltipla por interfaces é uma forma de contrato, mas não é o mecanismo descrito. O enunciado fala de herança de classe (Funcionario herda de Pessoa) e não menciona múltiplas superclasses. Interfaces são um conceito diferente; aqui a classe Funcionario é uma classe (não interface) que serve como base, o que remete a classe abstrata.

Alternativa D — ✅ Correta ⟵ GABARITO

Abstração, por meio da definição como Classe Abstrata e método Abstrato. Uma classe abstrata não pode ser instanciada (impede new Funcionario()) e um método abstrato é declarado sem corpo, forçando todas as subclasses concretas a implementá-lo. Isso atende exatamente ao requisito: Funcionario nunca é instanciada e serve como contrato para Efetivo e Comissionado.

SE LIGUE NESSA!

O conteúdo de apoio destaca que "classes abstratas não podem ser instanciadas em objetos, elas existem apenas para o propósito de herança em outras classes 'concretas'". O método abstrato é a forma de garantir que as subclasses forneçam sua própria implementação.

Alternativa E — ❌ Incorreta

Coesão refere-se ao grau em que os elementos de um módulo (classe) estão relacionados entre si. Não está ligada a impedir instanciação nem a obrigar implementação de métodos. É um princípio de design, não um mecanismo de linguagem.

Resposta: letra D – Classe abstrata com método abstrato.

Link permanente: /questoes/fg104561