En java existen 4 tipos: public, private, protected y el tipo por defecto que no tiene ningún modificador.
Aquí se definen de mayor a menor restricción:
- Private: Especifica que los elementos que lo utilizan solamente pueden ser accedidos desde la misma clase donde se encuentran. Este modificador solo puede utilizarse sobre los miembros de una clase y sobre interfaces o clases internas, no sobre clases o interfaces de primer nivel.
- (Por defecto): Si no se especifica ningún modificador, el elemento solo puede ser accedido por las clases que se encuentran en el mismo paquete donde esta definido.
- Protected: Indica que el elemento solo puede ser accedido desde el mismo paquete (como en private), y desde cualquier clase que extienda la clase en que se encuentra, indistintamente del paquete donde se encuentre dicha clase. Este modificador no se utiliza para clases o interfaces no internas.
- Public: Permite acceder al elemento desde cualquier clase, independientemente del paquete al que pertenezca.
Resumen de accesibilidad de los modificadores: