Atributo protegido de Java
Java tiene cuatro modificadores de acceso, a saber, private, protected y public. El acceso a nivel de paquete es el nivel de acceso por defecto proporcionado por Java si no se especifica ningún modificador de acceso. Estos modificadores de acceso se utilizan para restringir la accesibilidad de una clase, método o variable sobre la que se aplica. Empezaremos por el modificador de acceso private que es el modificador de acceso más restrictivo y luego iremos hacia el public que es el modificador de acceso menos restrictivo, a lo largo del camino veremos algunas de las mejores prácticas al usar el modificador de acceso en Java y algunos ejemplos de uso de las palabras clave private y protected.
La palabra clave o modificador private en Java se puede aplicar a un campo miembro, método o clase anidada en Java. no se puede utilizar el modificador private en las clases de nivel superior. las variables, métodos y clases privadas sólo son accesibles en la clase en la que se declaran. private es la forma más alta de encapsulación que proporciona la API de Java y debe utilizarse tanto como sea posible. Es la mejor práctica de codificación en Java para declarar las variables privadas por defecto. un método privado sólo puede ser llamado desde la clase donde se ha declarado.
Visibilidad por defecto de Java
Los tutoriales de Java han sido escritos para el JDK 8. Los ejemplos y las prácticas descritas en esta página no aprovechan las mejoras introducidas en versiones posteriores y pueden utilizar tecnología que ya no está disponible.Consulte los cambios en el lenguaje Java para obtener un resumen de las características actualizadas del lenguaje en Java SE 9 y las versiones posteriores.Consulte las notas de la versión del JDK para obtener información sobre las nuevas características, las mejoras y las opciones eliminadas o obsoletas de todas las versiones del JDK.
Una clase puede ser declarada con el modificador public, en cuyo caso esa clase es visible para todas las clases en cualquier lugar. Si una clase no tiene modificador (el valor por defecto, también conocido como package-private), sólo es visible dentro de su propio paquete (los paquetes son grupos de clases relacionadas con un nombre – aprenderás sobre ellos en un apartado posterior).
En el nivel de miembro, también puedes utilizar el modificador public o ningún modificador (package-private) al igual que con las clases de nivel superior, y con el mismo significado. Para los miembros, hay dos modificadores de acceso adicionales: private y protected. El modificador private especifica que sólo se puede acceder al miembro en su propia clase. El modificador protected especifica que sólo se puede acceder al miembro dentro de su propio paquete (como con package-private) y, además, por una subclase de su clase en otro paquete.
Java diferencia protegida y por defecto
Los tutoriales de Java han sido escritos para el JDK 8. Los ejemplos y las prácticas que se describen en esta página no aprovechan las mejoras introducidas en versiones posteriores y pueden utilizar tecnología que ya no está disponible.Consulte los cambios en el lenguaje de Java para obtener un resumen de las características actualizadas del lenguaje en Java SE 9 y las versiones posteriores.Consulte las notas de la versión del JDK para obtener información sobre las nuevas características, las mejoras y las opciones eliminadas o obsoletas de todas las versiones del JDK.
Una clase puede ser declarada con el modificador public, en cuyo caso esa clase es visible para todas las clases en cualquier lugar. Si una clase no tiene modificador (el valor por defecto, también conocido como paquete-privado), sólo es visible dentro de su propio paquete (los paquetes son grupos de clases relacionadas con un nombre – aprenderás sobre ellos en una sección posterior).
En el nivel de miembro, también puedes utilizar el modificador public o ningún modificador (package-private) al igual que con las clases de nivel superior, y con el mismo significado. Para los miembros, hay dos modificadores de acceso adicionales: private y protected. El modificador private especifica que sólo se puede acceder al miembro en su propia clase. El modificador protected especifica que sólo se puede acceder al miembro dentro de su propio paquete (como con package-private) y, además, por una subclase de su clase en otro paquete.
Herencia protegida en Java
Modificador de acceso protegido – ProtectedLas variables, métodos y constructores declarados como protegidos en una superclase sólo pueden ser accedidos por las subclases de otro paquete o cualquier clase dentro del paquete de la clase de los miembros protegidos.El modificador de acceso protegido no se puede aplicar a las clases e interfaces. Métodos, campos pueden ser declarados protegidos, sin embargo los métodos y campos en una interfaz no pueden ser declarados protegidos.El acceso protegido da a la subclase la oportunidad de utilizar el método o variable de ayuda, mientras que la prevención de una clase no relacionada de tratar de usarlo.EjemploLa siguiente clase padre utiliza el control de acceso protegido, para permitir a su clase hija anular el método openSpeaker() -clase AudioPlayer {
Aquí, si definimos el método openSpeaker() como privado, entonces no será accesible desde ninguna otra clase que no sea AudioPlayer. Si lo definimos como público, entonces sería accesible a todo el mundo exterior. Pero nuestra intención es exponer este método sólo a su subclase, por eso hemos utilizado el modificador protected.