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.
| Modificador | Acesso 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.