⬅ Previous Topic
Java private KeywordNext Topic ⮕
Java public Keyword⬅ Previous Topic
Java private KeywordNext Topic ⮕
Java public Keywordprotected
Keyword in JavaIn Java, the protected
keyword is one of the four access modifiers used to define the visibility and accessibility of class members (fields, constructors, and methods).
When a member is declared as protected
, it means:
default
access).This makes protected
very useful in inheritance scenarios where you want child classes to access members of the parent class without making them public
.
protected datatype variableName;
protected returnType methodName() {
// method body
}
// File: Animal.java
package animals;
public class Animal {
protected void sound() {
System.out.println("Animals make sounds");
}
}
// File: Dog.java
package animals;
public class Dog extends Animal {
void bark() {
sound(); // Accessing protected method
}
}
// File: Main.java
package animals;
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.bark();
}
}
Animals make sounds
Here, both Dog
and Main
are in the same package as Animal
. So the protected
method sound()
is accessible directly in the subclass Dog
.
// File: Animal.java
package animals;
public class Animal {
protected void sound() {
System.out.println("Animal makes sound");
}
}
// File: Cat.java
package pets;
import animals.Animal;
public class Cat extends Animal {
public void meow() {
sound(); // Allowed because Cat is a subclass
}
}
// File: Test.java
package pets;
public class Test {
public static void main(String[] args) {
Cat cat = new Cat();
cat.meow();
}
}
Animal makes sound
Even though Cat
is in a different package from Animal
, the protected
method sound()
is still accessible in Cat
because it extends Animal
.
Important: A protected member cannot be accessed via object reference outside the package if you're not in a subclass.
// File: Animal.java
package animals;
public class Animal {
protected void sound() {
System.out.println("Animal sound");
}
}
// File: Main.java
package random;
import animals.Animal;
public class Main {
public static void main(String[] args) {
Animal a = new Animal();
a.sound(); // Compile-time error
}
}
Error: sound() has protected access in Animal
protected
= package-level access + access to subclasses outside the package.Use protected
when:
⬅ Previous Topic
Java private KeywordNext Topic ⮕
Java public KeywordYou can support this website with a contribution of your choice.
When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.