Os membros de uma superclasse definidos com o modificador pr...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C
No contexto de programação Java, entender os modificadores de acesso é essencial para gerenciar a visibilidade e o acesso das propriedades e métodos de uma classe. Quando um membro de uma classe é declarado com o modificador protected, ele se torna acessível não apenas aos membros da própria classe (também conhecida como superclasse), mas também às classes descendentes, ou seja, as subclasses, e adicionalmente a outras classes que estiverem no mesmo pacote.
Portanto, a alternativa C está correta porque ela afirma que membros definidos como protected em uma superclasse podem ser acessados pelos próprios membros dessa superclasse, pelos membros da subclasse e também por membros de outras classes dentro do mesmo pacote. Isso permite um equilíbrio entre segurança e flexibilidade, protegendo o acesso a esses membros de classes totalmente externas, ao mesmo tempo em que permite herança e colaboração dentro de um mesmo pacote.
As demais alternativas são incorretas: a A limita o acesso apenas a membros estáticos da subclasse, o que vai contra as regras do modificador protected; a B exclui as outras classes do mesmo pacote, que de fato têm acesso; e a D sugere que somente membros da própria superclasse teriam acesso, o que também é incorreto.
Para resolver questões como essa, é importante ter um bom entendimento dos princípios de encapsulamento e dos diferentes modificadores de acesso em Java: public, private, protected, e acesso de pacote (ou default, quando nenhum modificador é especificado). Saber como cada um deles influencia o acesso às variáveis e métodos é crucial para a correta aplicação de princípios de orientação a objetos e no design seguro de sistemas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GABARITO C
Protected: essa instrução indica que métodos ou atributos (classes, não) assim declaradas somente podem ser acessadas dentro do pacote em que está contida ou por subclasses no mesmo pacote.
FONTE: Estratégia
É importante não confundir o significado de protected em Java e em UML. Em Java, protected é a visibilidade que permite o acesso pela própria classe (private), subclasses e classes do mesmo pacote (pacote). Já em UML, protected é a visibilidade que permite o acesso apenas pela própria classe (private) e subclasses.
protected. O modificador protected torna o membro acessível às classes do mesmo pacote ou através de herança, seus membros herdados não são acessíveis a outras classes fora do pacote em que foram declarados.
- Protected pode ser acessada por por classes de mesmo pacote ou classes filhas de pacotes diferentes.
- Public pode ser acessada por qualquer classe
- Private pode ser acessada somente pela própria classe
- Default pode ser acessada por classes de mesmo pacote (é mais restrita que protegido)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo