This Java tutorial helps you understand the use of protected keyword in Java with code example.
Basically, the protected keyword is an access modifier for method and variable of a class.
When a method or a variable is marked as protected, it can be accessed from:
The main purpose of protected keyword is to have the method or variable can be inherited from sub classes.
The following class Person, declares a protected variable name, inside package p1:
package p1; public class Person { protected String name; }
The following class in the same package can access the variable name directly:
package p1; public class Employer { void hireEmployee() { Person p = new Person(); p.name = "Nam"; // access protected variable directly } }
The following class is in different package but it extends the Person class so it can access the variable name directly:
package p2; import p1.Person; class Employee extends Person { void doStuff() { name = "Bob"; } }
But the following class, in different package, cannot access the variable name directly:
package p2; import p1.Person; class AnotherEmployer { void hire() { Person p = new Person(); // compile error, cannot acceess protected variable // from different package p.name = "Nam"; } }
The above code will cause compilation error:
AnotherEmployer.java:8: error: name has protected access in Person
Related keyword: public and private. See all keywords in Java.