Composition offers more flexibility by combining classes dynamically.
Using composition, you can change behavior at runtime by composing objects with different capabilities. This avoids the rigid structure of inheritance hierarchies. For instance, a 'Vehicle' class can have a 'Engine' object to define its power source rather than inheriting from 'Car' or 'Truck', making it more adaptable to changes.