Abstract classes are classes which cannot be instantiated. They exist to provide common functionality and interface specifications to several concrete classes.