For interfaces we can not apply private,protected.It must always declare as public because interface is method prototype that is all the methods are 100% abstract.the method body will be implemented in the implementation classes.
if your using private, the methods can't accessible to other classes.so we can't implement those methods in the implementation classes.
coming on to protected,the methods have accessibility to subclasses but any implementation class is not subclass to any interface.
so interface-always public
I know Life is very Tough...But I AM TOUGHER
Abhi the code that you gave tries to extend a non-static inner interface. You need an instance of the enclosing class to do that. This is allowed with the other non-static inner class as it has an enclosing class instance. But to implement it outside the enclosing class or in static member classes of the enclosing class, you need to have an explicit super call in the constructor with an enclosing class instance. So use this code