Pregunta

Quiero algo similar a protected , donde solo una clase que implementa el campo protected y cualquier cosa que las subclases pueda acceder a él.

Por lo tanto, quiero poder declarar una variable en la clase base como private , pero aún así poder acceder a ella desde una subclase.

Quizás esto va en contra de la naturaleza misma de la subclase, privado , y / o protected .

¿Existe algo como esto en Java?

¿Fue útil?

Solución

Solo hay cuatro niveles de acceso para los campos en Java:

  • privado
  • paquete-privado (predeterminado; sin modificador de acceso)
  • protected
  • public

protected permitirá que las subclases, otras clases en el mismo paquete y los miembros de la clase misma accedan al miembro protected .

La respuesta corta es que no hay forma de lograr exactamente lo que se desea.

Para obtener una descripción de esos cuatro modificadores de acceso, Control de acceso a Miembros de una clase de Los tutoriales de Java tienen más detalles información.

Otros consejos

Si controla la base de código, siempre puede controlar lo que entra en el paquete con la clase base; si está solo en su paquete, solo las subclases pueden acceder al miembro que desea mantener en privado, excepto las subclases.

No, no hay modificador de acceso a haz exactamente eso. El modificador protected es lo más parecido, pero eso expone el campo a cualquier clase en el mismo paquete, así como a subclases (dentro o fuera del mismo paquete).

No es posible. U todavía puede declarar sus variables como privadas y luego declarar métodos públicos que modifiquen las variables en La superclase. Luego se llama al método público en la variable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top