Si hereda de una actividad en la que se declararon ciertas variables miembro, ¿cómo accede a estas variables miembro en la subclase que ejecuta la herencia?Acceso a variables de clase heredadas en java
nombresRespuesta
public
o protected
miembro puede acceder a través this.memberName
de cualquier constructor o static
método no o inicializador.
private
o miembros de nivel de paquete (a los que se accede desde una subclase en un paquete diferente) no se puede acceder directamente y se deberá acceder a través de una interfaz sin privilegios como public
getter.
Si los miembros se declararon private
, o si se declararon con acceso predeterminado (paquete) y su subclase está en una clase diferente, no puede acceder a las variables. Si se proporcionaron accessors, puede usarlos. De lo contrario, no son accesibles.
Si los miembros fueron declarados protected
o public
, a continuación, acceder a ellos como si ellos fueron declarados en su propia clase (this.var
, o simplemente var
si no hay ambigüedad). Si tiene un miembro en la subclase con el mismo nombre que la superclase, puede usar super.var
para acceder a la variable de superclase.
¿Le importaría explicar al infractor? –
+1 para contrarrestar el voto negativo inexplicado. – mre
class A {
protected int a = 3;
}
class B extends A {
protected int b = 2;
void doIt() {
System.out.println("super.a:" + super.a);
System.out.println("this.b: " + this.b);
}
}
Como otros han dicho, los campos públicos y protegidos se puede acceder a través de this.field
de la subclase. También se puede acceder a los campos privados del paquete de la misma manera, pero solo si la subclase está en el mismo paquete que el padre.
No se puede acceder a los campos privados de esta manera, pero se puede acceder utilizando Java reflection, si la configuración de seguridad lo permite. Por lo general, no es una práctica recomendada (los miembros privados suelen ser privados por algún motivo), pero puede ser útil en algunas situaciones, por ejemplo, para acceder a miembros privados de la clase con el fin de probar el código. Consulte the answers to this question para saber cómo usar la reflexión de esta manera.
- 1. variables de acceso de clase externa en Java
- 2. Niveles de acceso de los miembros de la clase java
- 3. Acceso a las variables de publicación mediante los servlets Java
- 4. Acceso a variables de entorno En C++
- 5. ver variables globales/estáticas/heredadas en eclipse debugger
- 6. Uso de variables miembro heredadas de una clase base de plantilla (C++)
- 7. acceso clase externa "super" de clase interna en Java
- 8. Acceso global frente a variables locales
- 9. Acceso global en Java
- 10. acceso "este" de Java clase anónima
- 11. ¿Es más rápido acceder a las variables locales finales que las variables de clase en Java?
- 12. Symfony2 Acceso a variables de ruta
- 13. Acceso a un dispositivo Midi en Java
- 14. Java - ¿Clase abstracta para contener variables?
- 15. variables de clases externas de clase interna anidadas en Java
- 16. las variables Pass a ActionListener en Java
- 17. Variables de clase en Javascript
- 18. Evitar llamadas a funciones heredadas en VB.NET
- 19. Variables locales en java
- 20. java: obtener todos los nombres de variables en una clase
- 21. Acceso a variables de miembros privados desde un operador de asignación de clase con plantilla
- 22. Obtener todas las clases heredadas de una clase abstracta
- 23. Acceso a variables locales dentro de un generador de Python
- 24. accede a variables HttpApplication.Application de una clase
- 25. Acceso a la clase de controlador FXML
- 26. Java: Acceso a la subclase sin acceso al paquete
- 27. variables de instancia de clase python y variables de clase
- 28. ¿Java admite variables variables?
- 29. Inicializando campos en clases heredadas
- 30. Eliminando el acceso a System.out en java
También compruebe que no tiene un conflicto de nomenclatura: http://java.sys-con.com/node/46344 si se encuentra con un comportamiento inesperado – jefflunt