I\'m going to try to ask my question in the context of a simple example...
Let\'s say I have an abstract base class Car. Car has-a basic Engine object. I have a method
There are lots of ways it could be done.
I would favour having a setEngine() method on Car, then having the Ferrari constructor call setEngine() and pass in an instance of a TurboEngine.
setEngine()
Car
Ferrari
TurboEngine