Es muy común encontrarnos con estos modos de declarar los métodos o las variables en el mundo de la programación orientada a objetos. Pero resulta algo confuso determinar cual es realmente la diferencia entre public, private, protected y friendly.
Primero, observemos esta imagen…
- Public: son aquellos que son visibles para todas las clases; aunque estén fuera de los paquetes.
- Private: son aquellos que son visibles solo para las clases a las que pertenecen.
- Protected: son aquellos que son visibles solo en las clases a las que pertenecen además de sus subclases.
- Friendly: son aquellos que son visibles solo en las clases que están en el mismo paquete.