Access Modifiers
Access Modifiers
1. public
Visible everywhere (any package/class can access it).
2. private
Only accessible within the same class.
Used for encapsulation (e.g., private fields with public
getters/setters).
class Animal {
private void breathe() {
System.out.println("Animal breathes");
}
}
3. protected
Accessible in the same package and in subclasses (even if
subclass is in another package).
class Animal {
protected void eat() {
System.out.println("Animal eats");
}
}
class Animal {
void run() {
System.out.println("Animal runs");
}
}
Summary Table
Modifier Same Same Subclass Other
Class Package (other Package
package)
public ✅ ✅ ✅ ✅
protected ✅ ✅ ✅ ❌ (unless
subclass )
default ✅ ✅ ❌ ❌
private ✅ ❌ ❌ ❌