A class necessarily implements all the interfaces that its direct superclasses and direct superinterfaces do. A variable whose declared type is an interface type may have as its value a reference to any object that is an instance of a class declared to implement the specified interface. InterfaceBody A compile-time error occurs if the Identifier naming an interface appears as the name of any other class or interface in the same package. The Identifier specifies the name of the interface and has as its scope the entire package in which it is declared. A compile-time error occurs if the same modifier appears more than once in an interface declaration.
Every interface is implicitly abstract .
This modifier is obsolete and should not be used in new Java programs. If an extends clause is provided, then the interface being declared extends each of the other named interfaces and therefore inherits the methods and constants of each of the other named interfaces. These other named interfaces are the direct superinterfaces of the interface being declared. Any class that implements the declared interface is also considered to implement all the interfaces that this interface extends and that are accessible to the class. A compile-time error occurs if there is a circularity such that an interface directly or indirectly extends itself.