Each type of
a different shape and appearance. Drop-down listboxes look very
different from buttons. Clearly, every subclass of Window
should implement its own
DrawWindow( ) method—but so far, nothing in
the Window class enforces that they must do so. To require subclasses to
implement a method of their base, you need to designate that method as
An abstract method has no implementation. It creates a method name and signature that must be implemented in all derived classes. Furthermore, making at least one method of any class abstract has the side effect of making the class abstract.
Abstract classes establish a base for derived classes, but it is not legal to instantiate an object of an abstract class. Once you declare a method to be abstract, you prohibit the creation of any instances of that class.
Thus, if you were to designate
DrawWindow( ) as an abstract method in the
Window class, the
Window class itself would become abstract.
Then you could derive from
but you could not create any
instances. If the
Window class is an
abstraction, there is no such thing as a simple
Window object, only objects derived from
abstract means that each class derived from
Window would have to implement its own
DrawWindow( ) method. If the derived
class failed to implement the abstract method, that derived class would
also be abstract, and again no instances would be possible.