protected keyword in Java
- Details
- Written by Nam Ha Minh
- Last Updated on 19 August 2019   |   Print Email
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:
- Within the enclosing class.
- Other classes in the same package as the enclosing class.
- Sub classes, regardless of packages.
The main purpose of protected keyword is to have the method or variable can be inherited from sub classes.
Java protected keyword Examples:
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.
Related Topics:
Other Recommended Tutorials:
- 9 Rules about Constructors in Java
- 12 Rules and Examples About Inheritance in Java
- 12 Rules of Overriding in Java You Should Know
- 10 Java Core Best Practices Every Java Programmer Should Know
- Understand Interfaces in Java
- Understand how variables are passed in Java
- Understand encapsulation in Java
Comments
thank you so much.