An abstract class is a class that can't be instantiated. It's only purpose is for other classes to extend.
An abstract class is a class that is declared abstract—it may or may
not include abstract methods. Abstract classes cannot be instantiated,
but they can be subclassed.
An abstract method is a method that is declared without an
implementation (without braces, and followed by a semicolon), like
this:
abstract void moveTo(double deltaX, double deltaY); If a class
includes abstract methods, then the class itself must be declared
abstract, as in:
public abstract class GraphicObject {
// declare fields
//declare nonabstract methods
abstract void draw(); }
The main purpose of an abstract class is if you have common code to use in sub classes but the abstract class should not have instances of its own.
You can read more about it here: Abstract Methods and Classes