DEV Community

Entendendo os membros protegidos

  • O modificador protectedpermite 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.

Image description

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

  • Image description

  • Image description

  • Image description

  • ExtBookestende Book, o que permite acessar membros protectedde Book, mesmo estando em pacotes diferentes.

  • ExtBookpode acessar diretamente os membros protectedcomo title, authore pubDate, criando métodos acessadores para essas variáveis.

  • Na classe ProtectDemo, o acesso direto a essas variáveis é negado porque ProtectDemonã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)