Abstract classes are Classes that don’t have any Objects, but instead have many subclasses via Inheritance, which have overriding methods to implement functionality.
If a class is defined to be abstract, then:
- It may or may not have abstract methods. An abstract method does not have any functionality, but does have a method signature.
- It cannot be instantiated, i.e. an object cannot be created from it
- It can have a constructor, but the only way to call it is via the
super
keyword from a subclass.