Engenharia Múltipla Escolha

Imagine que uma classe A possua um método privado mPriv(). Imagine ainda que foi criada uma subclasse B para essa classe que agora precisa acessar o método mPriv(). Qual modificador de acesso você deve utilizar em mPriv()?

Imagine que uma classe A possua um método privado mPriv(). Imagine ainda que foi criada uma subclasse B para essa classe que agora precisa acessar o método mPriv(). Qual modificador de acesso você deve utilizar em mPriv()?

  1. public
  2. protected
  3. default

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B - protected

No contexto da Programação Orientada a Objetos (POO), especificamente em linguagens como Java, os modificadores de acesso controlam a visibilidade dos membros de uma classe. Para permitir que uma subclasse acesse um membro da sua superclasse, é necessário alterar a restrição de visibilidade do método.

O modificador protected é o responsável por estender o escopo de acesso para além da classe original e do pacote, permitindo explicitamente o acesso por parte das classes filhas (subclasses), mantendo-o encapsulado frente ao resto do sistema.

Análise

Abaixo, detalhamos como cada opção afeta a capacidade da subclasse B de acessar o método herdado da classe A:

  • private (Opção Original): Restringe o acesso apenas à própria classe onde está definido. A subclasse não consegue ver ou chamar este método.
  • protected (Correta): Permite acesso dentro da mesma classe, no mesmo pacote e, crucialmente, em subclasses, independentemente do pacote. Atende exatamente ao requisito do enunciado.
  • default (sem modificador): Permite acesso apenas na mesma classe e no mesmo pacote. Se a subclasse estiver em outro pacote, não conseguirá acessar.
  • public (Opção Excessiva): Permite acesso de qualquer lugar. Embora tecnicamente funcione, não é a escolha ideal pois expõe o método desnecessariamente a outras partes do sistema, violando princípios de encapsulamento.
ModificadorAcesso pela Subclasse (mesmo pacote)Acesso pela Subclasse (outro pacote)
private❌ Não❌ Não
default✅ Sim❌ Não
protected✅ Sim✅ Sim
public✅ Sim✅ Sim

Portanto, para garantir que a subclasse tenha acesso ao método sem torná-lo público globalmente, o modificador protected é a solução correta.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.