What is the difference between interface and abstract class in Java?

Abstract classes can have methods with implementation whereas interface provides absolute abstraction and can't have any method implementations. Note that from Java 8 onwards, it's possible to create default and static methods in interface that contain the method implementations.