If there is no implementation but there is only declaration(requirement specification) of method then we use interface. Method is declared but the implementation is not performed.
ex: servlets
When we have partial implementation of method then we use abstract class.
Generic servlets and https servlets
When we have complete implementation and can provide service then we use concrete class(normal java class).