2 Why would you create an abstract class, if it can have no real instances?
to reserve memory for an unspecified class type
to have common behavior in derived classes
to explore a hypothetical class
to prevent unwanted method implementation