![]() |
VOOZH | about |
Access modifiers in Java help to restrict the scope of a class, constructor, variable, method, or data member. There are four types of access modifiers available in java. The access of various modifiers can be seen in the following table below as follows:
👁 Difference Between Access Modifiers
The protected keyword in Java refers to one of its access modifiers. The methods or data members declared as protected can be accessed from
There are some certain important points to be remembered as follows:
Implementation: Here we will be creating two packages p1 and p2. Class A in p1 is made public, to access it in p2. The method displayed in class A is protected and class B is inherited from class A and this protected method is then accessed by creating an object of class B.
Example 1: Package p1
Package p2
Output:
GeeksforGeeks
Now let us try to analyze different conditions of access:
- Calling protected function without extending the parent class
- Accessing a protected class
- Accessing display function from the same package but different
- Accessing display function from a different package
- Accessing a protected class by overriding to sub-class within the same package
Here we will create two packages p1 and p2. Class A in p1 is made public, to access it in p2. The method displayed in class A is protected. But the code will not be able to access the function "display" since the child class has not inherited its value from the main class and will throw an exception as shown.
Example 1-A: Package p1
Example 1-B: Package p2
Output:
Exception in thread "main"
java.lang.RuntimeException:
Uncompilable source code -
Erroneous sym type: p2.B.display
at p2.B.main(B.java:16)
Here we are trying to access a protected class A resulting in an error.
Example A:
Example B: Package p2
Output: This will throw an error
Exception in thread "main"
java.lang.RuntimeException:
Uncompilable source code -
Erroneous sym type: p2.B.display
at p2.B.main(B.java:16)
Implementation: In this example, we have access to access a protected function "display" from the same package but a different class
Example A: Package p1
Example B: class C
Output:
GeeksforGeeks
Here we have tried to access the protected function display from a different package by inheritance and extending the class.
Example A: Package p1
Example B: Package p2
Output:
GeeksforGeeks
Here we have designed two classes A and C, where class C is the overridden one.
Example A: class A
Example B: class C
Output:
Class C