In Java, an interface is a reference type, similar to a class, that can contain only:
Abstract methods (implicitly public and abstract)
Default methods (with a body, using default)
Static methods
Constant fields (public static final)
Purpose of Interfaces
Define a contract that implementing classes must follow.
Support multiple inheritance (Java doesn't allow multiple class inheritance, but a class can implement multiple interfaces).
Enable polymorphism and abstraction.
AFTER JAVA 8, methods in interface can have definition