Pular para o conteúdo principal

Questão de Programação — Programação Orientada a Objetos — FGV 2026

ProgramaçãoProgramação Orientada a Objetos
Código
gp003700
Banca
FGV
Órgão
TJ-SC
Ano
2026
Cargo
Analista de Sistemas
Durante o projeto de um sistema, utilizando linguagem orientadaa objetos, foram adotadas as seguintes práticas:I. Uma classe define seus atributos como privados e disponibilizaapenas métodos públicos para sua leitura e alteração,permitindo a realização de validações antes de qualquermodificação dos dados. II. Uma classe base é estendida por diversas subclasses quecompartilham comportamento comum, mas especializamdeterminadas operações conforme suas regras específicas.III. Um mesmo método, definido na classe base, éreimplementado nas subclasses, de modo que sua execuçãoproduza comportamentos distintos conforme o tipo concretodo objeto em tempo de execução. Com base nos conceitos fundamentais da programação orientadaa objetos, assinale a opção que classifica corretamente as práticasdescritas.
  1. AI – abstração; II – herança; III – polimorfismo.
  2. BI – encapsulamento; II – herança; III – sobrescrita.
  3. CI – encapsulamento; II – composição; III – polimorfismo.
  4. DI – encapsulamento; II – herança; III – sobrecarga.
  5. EI – abstração; II – herança; III – sobrecarga.
Revelar gabarito e comentário

GabaritoB — I – encapsulamento; II – herança; III – sobrescrita.

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

Conceitos fundamentais da Programação Orientada a Objetos

Gabarito: letra B. A prática I descreve o encapsulamento (atributos privados com acesso via métodos públicos, permitindo validações); a prática II descreve a herança (uma classe base estendida por subclasses que compartilham comportamento); e a prática III descreve a sobrescrita (override), que é a reimplementação de um método da classe base em subclasses, produzindo comportamentos distintos conforme o tipo concreto do objeto em tempo de execução. A alternativa B é a única que classifica corretamente as três práticas.

A programação orientada a objetos (POO) é 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 desses conceitos tem um papel específico no design de software, e é essencial saber distingui-los para responder questões como esta.

O encapsulamento é o mecanismo que restringe o acesso externo ao comportamento interno de um objeto. Na prática, isso é feito declarando os atributos como privados (private) e disponibilizando métodos públicos (como getters e setters) para leitura e alteração desses atributos. Isso permite que a classe controle como seus dados são acessados e modificados, podendo realizar validações antes de qualquer alteração. É exatamente o que a prática I descreve.

A herança é o mecanismo que permite que uma classe (subclasse ou classe filha) herde atributos e métodos de outra classe (superclasse ou classe pai). Isso promove a reutilização de código e a extensibilidade, permitindo que subclasses compartilhem comportamento comum, mas também especializem determinadas operações conforme suas regras específicas. A prática II descreve exatamente esse cenário.

O polimorfismo é a capacidade de um objeto assumir várias formas. Existem dois tipos principais de polimorfismo: o estático (sobrecarga ou overload) e o dinâmico (sobrescrita ou override). A sobrecarga ocorre quando dois ou mais métodos têm o mesmo nome, mas assinaturas diferentes (parâmetros diferentes), dentro da mesma classe. A sobrescrita ocorre quando uma subclasse reimplementa um método da classe base, com a mesma assinatura, para fornecer uma implementação específica. A prática III descreve exatamente a sobrescrita, pois menciona a reimplementação de um método da classe base em subclasses, produzindo comportamentos distintos conforme o tipo concreto do objeto em tempo de execução.

A distinção entre sobrescrita e sobrecarga é um ponto crucial e frequentemente cobrado em provas. A sobrescrita está relacionada à herança e ao polimorfismo dinâmico, enquanto a sobrecarga está relacionada à definição de múltiplos métodos com o mesmo nome, mas com parâmetros diferentes, dentro da mesma classe. A banca explora exatamente essa confusão nas alternativas.

A abstração é o processo de ocultar detalhes complexos e mostrar apenas as informações essenciais ao usuário. Ela pode ser alcançada por meio de classes abstratas ou interfaces. A prática I não descreve abstração, pois o foco está no controle de acesso aos atributos, e não na ocultação de detalhes de implementação.

A composição é um tipo de relacionamento entre classes onde um objeto contém outros objetos em suas variáveis de instância. A prática II não descreve composição, pois o foco está na herança de comportamento, e não na composição de objetos.

Guarde a fronteira entre sobrescrita (override) e sobrecarga (overload): é exatamente nela que as alternativas se dividem. A prática III descreve a reimplementação de um método da classe base em subclasses, o que é a definição clássica de sobrescrita, e não de sobrecarga.

Prática

Conceito

Justificativa

I

Encapsulamento

Atributos privados com métodos públicos para leitura/alteração, permitindo validações.

II

Herança

Classe base estendida por subclasses que compartilham comportamento comum e especializam operações.

III

Sobrescrita (override)

Reimplementação de método da classe base nas subclasses, com comportamento distinto em tempo de execução.

Encapsulamento
  • 1Atributos privados
  • 2Métodos públicos (getters/setters)
  • 3Validações antes de alterar
  • 4Herança
    • Classe base estendida
    • Subclasses compartilham comportamento
    • Especialização de operações
  • 5Sobrescrita (override)
    • Reimplementa método da classe base
    • Mesma assinatura
    • Comportamento distinto em execução
  • 6Sobrecarga (overload)
    • Mesmo nome, assinaturas diferentes
    • Mesma classe
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A alternativa A classifica a prática I como abstração, o que está incorreto. A prática I descreve o encapsulamento, pois o foco está em restringir o acesso aos atributos e fornecer métodos públicos para leitura e alteração, permitindo validações. A abstração é o processo de ocultar detalhes complexos e mostrar apenas o essencial, o que não é o caso aqui.

Alternativa B — ✅ Correta ⟵ GABARITO

A alternativa B classifica corretamente as três práticas: I – encapsulamento (atributos privados com métodos públicos para acesso e validação); II – herança (classe base estendida por subclasses que compartilham comportamento); III – sobrescrita (reimplementação de um método da classe base em subclasses, produzindo comportamentos distintos conforme o tipo concreto do objeto em tempo de execução).

Alternativa C — ❌ Incorreta

A alternativa C classifica a prática II como composição, o que está incorreto. A prática II descreve a herança, pois uma classe base é estendida por subclasses que compartilham comportamento comum. A composição é um relacionamento onde um objeto contém outros objetos, o que não é o caso aqui.

Alternativa D — ❌ Incorreta

A alternativa D classifica a prática III como sobrecarga, o que está incorreto. A prática III descreve a sobrescrita (override), pois um método da classe base é reimplementado nas subclasses, produzindo comportamentos distintos conforme o tipo concreto do objeto em tempo de execução. A sobrecarga ocorre quando métodos têm o mesmo nome, mas assinaturas diferentes, dentro da mesma classe.

Alternativa E — ❌ Incorreta

A alternativa E classifica a prática I como abstração e a prática III como sobrecarga, ambos incorretos. A prática I descreve o encapsulamento, e a prática III descreve a sobrescrita (override). A abstração é o processo de ocultar detalhes complexos, e a sobrecarga é a definição de múltiplos métodos com o mesmo nome, mas com parâmetros diferentes.

NÃO CAIA NESSA!

A banca adora trocar sobrescrita por sobrecarga e encapsulamento por abstração. A sobrescrita (override) está ligada à herança e ao polimorfismo dinâmico, enquanto a sobrecarga (overload) é a definição de métodos com o mesmo nome, mas com assinaturas diferentes, na mesma classe. A abstração é a ocultação de detalhes de implementação, enquanto o encapsulamento é a restrição de acesso aos atributos. Com treino, você enxerga essas trocas de longe 💪.

PEGA ESSA DICA!

Para diferenciar sobrescrita de sobrecarga, lembre-se: sobrescrita = mesma assinatura, classes diferentes (herança), comportamento distinto em tempo de execução; sobrecarga = mesmo nome, assinaturas diferentes, mesma classe. Na prova, se a questão mencionar "reimplementação em subclasses" ou "comportamento distinto conforme o tipo concreto", é sobrescrita.

Gabarito: letra B

Link permanente: /questoes/gp003700