Abstract Classes Revisited
Recall an abstract class is a class that contains some abstract method declarations, with no implementation.
An abstract class can only be instantiated indirectly, as a superclass of a class that overrides all the abstract methods, and gives them an implementation. You cannot directly create an instance of an abstract class.
- Constructors, static methods, private methods cannot be abstract.
- A subclass that does not override all abstract methods is still abstract.
- A method that overrides a superclass method cannot be abstract
But an abstract class will generally also contain “non-abstract” members—method implementations, instance variables, etc—and constructors.