All classes derived from a base class should be interchangeable