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