What is "abstract-classes"
An abstract class is developed to represent abstract entities and concepts. The abstract class is always a superclass that has no instances. It defines a template (template) for a feature and provides an incomplete implementation - the generic part of that functionality - that is shared by a group of derived classes. Each of the derived classes completes the functionality of the abstract class by adding a specific behavior.
An abstract class usually has abstract methods. These methods are implemented in their derived classes with the aim of defining specific behavior. The abstract method defines only the method signature and therefore does not contain code.