Can we declare an interface with in another interface in java?

An interface in Java is a specification of method prototypes. Whenever you need to guide the programmer or, make a contract specifying how the methods and fields of a type should be you can define an interface.

To create an object of this type you need to implement this interface, provide body for all the abstract methods of the interface and obtain the object of the implementing class.

Nested Interfaces

Java allows declaring interfaces within another interface, these are known as nested interfaces.

While implementing you need to refer to the nested interface as outerInterface.nestedInterface.


In the following Java example, we have an interface with name Cars4U_Services which contains two nested interfaces: CarRentalServices and, CarSales with two abstract methods each.

From a class we are implementing the two nested interfaces and providing body for all the four abstract methods.

interface Cars4U_Services {
   interface CarRentalServices {
      public abstract void lendCar();
      public abstract void collectCar();
   interface CarSales{
      public abstract void buyOldCars();
      public abstract void sellOldCars();
public class Cars4U implements Cars4U_Services.CarRentalServices,
Cars4U_Services.CarSales {
   public void buyOldCars() {
      System.out.println("We will buy old cars");
   public void sellOldCars() {
      System.out.println("We will sell old cars");
   public void lendCar() {
      System.out.println("We will lend cars for rent");
   public void collectCar() {
      System.out.println("Collect issued cars");
   public static void main(String args[]){
      Cars4U obj = new Cars4U();


We will buy old cars
We will sell old cars
We will lend cars for rent

Updated on: 22-Nov-2023


Kickstart Your Career

Get certified by completing the course

Get Started