An interface is a collection of abstract methods that provide full abstraction. Interfaces are needed for full abstraction and to support multiple inheritance. An interface is declared using the interface keyword and can contain constant variables and abstract public methods that implementing classes are required to implement. A class implements an interface while a class can extend another class or implement multiple interfaces for inheritance.