Interfaces are "rules" so they must be present in specifications implemented by third parties as is the case with servlets and
JSP.
Abstract classes let you create your own classes "extending" the abstract functionality. Moreover, they ease the developer by providing dummy method implementations.