An interface in Java is a blueprint of a class that defines static constants and abstract methods. Interfaces are used to achieve abstraction and multiple inheritance in Java. An interface cannot have method bodies and can only contain abstract methods and variables that are public, static, and final by default. Classes implement interfaces to inherit their methods. Since Java 8, interfaces can also contain default and static methods.