Concepto
- Modificador
protected
- Se aplica a :
- Atributos de clase o de instancia
- Métodos de clase o de instancia
- Un atributo con el modificador
protected
solo es accesible desde
- Desde la clase de su paquete/package y desde las subclases este en el mismo paquete/package o no
- Suelen ser útiles para hacer pruebas Unitarias
Herencia
- Métodos declarados como
protected
en la clase Padre podrán ser protected
o public
en las clases Hijas o subclases pero no podrán tener el modificador private
Ejemplo de Código
/**
* Si declaramos un método, propiedad o constructor con la
* palabra clave protected, podemos acceder a los miembros de la clase desde
* el mismo paquete (al igual que los modificadores de acceso "private/privado" del "package/paquete")
* y además desde todas las "Subclases" de su clase, incluso
* si se encuentran en otros "package/paquete"
*/
public class ModificadorProtected {
/**
* Atributo de instancia
*
* Modificador protected
*
* Accesible desde las clases de su "package/paquete"
* y de sus subclase "Clases Hijas"
* (estén o no en el mismo package/paquete)
*/
protected String nombre;
/**
* Constructor por defecto
*
* Modificador protected
*
* Accesible desde las clases de su "package/paquete"
* y de sus subclase "Clases Hijas"
* (estén o no en el mismo package/paquete)
*
*/
protected ModificadorProtected() {
this.nombre = null;
}
/**
* Constructor parametrizado
*
* Modificador protected
*
* Accesible desde las clases de su "package/paquete"
* y de sus subclase "Clases Hijas"
* (estén o no en el mismo package/paquete)
*
* @param nombre
*/
protected ModificadorProtected(String nombre) {
this.nombre = nombre;
}
/**
* Método de instancia
*
* Modificador protected
*
* Accesible desde las clases de su "package/paquete"
* y de sus subclases "Clases Hijas"
* (estén o no en el mismo package/paquete)
*
* @return nombre
*/
protected String getNombre() {
return nombre;
}
/**
* Procedimiento de instancia
*
* Modificador protected
*
* Accesible desde las clases de su "package/paquete"
* y de sus subclases "Clases Hijas"
* (estén o no en el mismo package/paquete)
*
* @param nombre
*/
protected void setNombre(String nombre) {
this.nombre = nombre;
}
}
}
Deja un comentario