O modificador
protected
permite que um membro seja acessado dentro de seu pacote e por subclasses em outros pacotes.Um membro protegido pode ser usado por todas as subclasses, mas continua protegido contra acesso de códigos externos ao pacote.
Um exemplo pode ajudar a entender melhor o efeito de
protected
.No exemplo, a classe Book é alterada para que suas variáveis de instância sejam
protected
.
Crie uma subclasse de Book chamada ExtBook.
Crie uma classe chamada ProtectDemo que utiliza ExtBook.
ExtBook adiciona um campo para armazenar o nome do editor.
ExtBook também possui vários métodos acessadores.
As duas classes (ExtBook e ProtectDemo) estão no pacote bookpackext.
ExtBook
estendeBook
, o que permite acessar membrosprotected
deBook
, mesmo estando em pacotes diferentes.ExtBook
pode acessar diretamente os membrosprotected
comotitle
,author
epubDate
, criando métodos acessadores para essas variáveis.Na classe
ProtectDemo
, o acesso direto a essas variáveis é negado porqueProtectDemo
não é uma subclasse de Book.Se o comentário for removido da linha
books[0].title = "test title";
, o programa não será compilado devido à restrição de acesso.
Top comments (0)