Coupling and inheritance
Object-oriented systems are loosely coupled because there is no shared state and objects communicate using message passing
However, an object class is coupled to its super-classes. Changes made to the attributes or operations in a super-class propagate to all sub-classes. Such changes must be carefully controlled