Java Nested Interface
An interface, i.e., declared within another interface or class, is known as a nested interface. The nested interfaces are used to group related interfaces so that they can be easy to maintain. The nested interface must be referred to by the outer interface or class. It can’t be accessed directly.
Points to remember for nested interfaces
There are given some points that should be remembered by the java programmer.
- The nested interface must be public if it is declared inside the interface, but it can have any access modifier if declared within the class.
- Nested interfaces are declared static
Syntax of nested interface which is declared within the interface
Syntax of nested interface which is declared within the class
Example of nested interface which is declared within the interface
In this example, we will learn how to declare the nested interface and how we can access it.
TestNestedInterface1.java
Output:
hello nested interface
As you can see in the above example, we are accessing the Message interface by its outer interface Showable because it cannot be accessed directly. It is just like the almirah inside the room; we cannot access the almirah directly because we must enter the room first. In the collection framework, the sun microsystem has provided a nested interface Entry. Entry is the subinterface of Map, i.e., accessed by Map.Entry.
Internal code generated by the java compiler for nested interface Message
The java compiler internally creates a public and static interface as displayed below:
Example of nested interface which is declared within the class
Let’s see how we can define an interface inside the class and how we can access it.
TestNestedInterface2.java
Output:
hello nested interface
Can we define a class inside the interface?
Yes, if we define a class inside the interface, the Java compiler creates a static nested class. Let’s see how can we define a class within the interface: