What is an Abstract Base Class?

What is an Abstract Base Class? what is the purpose of this.. how is this different from Java interface?

What is an Abstract Base Class?

An abstract class is a class that is designed to be specifically used as a base class. An abstract class contains at least one pure virtual function. Additionally, it can contain other concrete functions.

In Java interface, only pure virtual(abstract) functions are allowed.