Engine has start() returning 'vroom'; Car receives an Engine instance in its constructor (dependency injection) and its own start() delegates to the engine, returning f'car: {engine sound}'. No inheritance anywhere — a Car *has* an Engine, it is not one.Car(Engine()).start()
'car: vroom'
The car forwards to its injected component.
self.engine = engine stores the part.
Delegation is just calling through.