Inheritance can reduce flexibility by tightly coupling classes.
While inheritance promotes code reuse, it can lead to tightly coupled code, making it difficult to change or extend functionality without affecting other parts of the application. For instance, if 'OnlineOrder' inherits from 'Order', any change in 'Order' may break 'OnlineOrder', limiting adaptability to new requirements.
Additional Notes
What are the tradeoffs of using inheritance for code reuse?