Pergunta

Eu quero algo semelhante ao protected, onde apenas uma classe que implementa o campo protected e qualquer coisa que subclasses pode acessá-lo.

Então, eu quero ser capaz de declarar uma variável na classe base como private, mas ainda ser capaz de acessá-lo de uma subclasse.

Talvez isso é contra a própria natureza da subclasse, private, e / ou protected.

Será que algo assim existe em Java?

Foi útil?

Solução

Existem apenas quatro níveis de acesso para campos em Java:

  • private
  • pacote-privadas (padrão, sem modificador de acesso)
  • protected
  • public

protected permitirá subclasses, outras classes no mesmo pacote, e membros da própria classe para acessar o membro protected.

A resposta curta é, não há nenhuma maneira de conseguir exatamente o que é desejado.

Para uma descrição desses quatro modificadores de acesso, Controlando Acesso aos membros de uma classe de os tutoriais Java tem mais específico informações.

Outras dicas

Se você controlar a base de código, você pode sempre controlar o que vai para o pacote com os baseclass -. Se ele está sozinho em sua embalagem, única subclasses pode acessar o membro que deseja manter privadas exceto para subclasses

Não, não há nenhuma acesso modificador para fazer exatamente isso. O modificador protected é a coisa mais próxima, mas que expõe o campo a qualquer classe no mesmo pacote, bem como para subclasses (dentro ou fora do mesmo pacote).

Não é possível. U ainda pode declarar suas variáveis ??como privadas, em seguida, declarar métodos públicos que modificar as variáveis ??em superclasse. Você, então, chamar o método público sobre a variável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top