An interface specifies a collection of abstract methods that must be overriden by classes that implement the interface. Interfaces are declared as follows:
( interface ( interface-modifiers ) interface-name extends-clause interface-body )
The interface modifiers are public and abstract. public interfaces can be accessed in other packages. All interfaces are abstract. The abstract modifier is superfluous. If there are no interface modifiers, the parentheses enclosing them are omitted.
The optional extends clause is used to identify any interfaces that are extended by an interface. It is written as follows:
extends ( interface-names )
An interface inherits all the methods of all interfaces that it extends.
The interface body consists of zero or more field variable lists and abstract method declarations. All variables declared in these field variable lists are public, static, and final. Methods are public and abstract. These variable and method modifiers neet not be specified.