To put it roughly, an interface is an idea, but an abstract class goes a step ahead in implementing that idea, but not completely.
Comparable interface doesnt do anything itself, but any class implementing the interface has the distinct behavior of being able to compare its objects.
An abstract class says that hey, i am implementing some stuff that will apply to all subclasses, but there are some things so specific that it doesnt make any sense for me to define those. That stuff is left for the subclasses.
hope this helps!
subject: In the real world where can i use the interfaces and abstract classes .