The inheritance hierarchy of an object is fixed at initiation, while the object's type is selected and does not change with time.
For example, the inheritance graph does not allow a MobileAppUser object to become a WebAppUser object while retaining the state of its User superclass (this can be achieved with the decorator pattern).