Hi,
An abstract class is a class that cannot be instantiated. It's main purpose
is to serve as a foundation for inheriting classes by providing, say, a
subset of shared functionality. Abstract classes usually contain one or more
abstract methods - that is, methods that are virtual but have no
implementation as of this class. The inheriting classes must override and
implement such methods to be instantiable.