Como uso a composição com herança?
Vou tentar fazer minha pergunta no contexto de um exemplo simples ...
Digamos que eu tenho um carro de classe base abstrato. O carro possui um objeto básico do mecanismo. Eu tenho um método StartEngine () na classe Car abstrata que delega a partida do mecanismo no objeto Engine.
Como permito que subclasses de Car (como Ferrari) declarem o objeto Engine como um tipo específico de mecanismo (por exemplo, TurboEngine)? Preciso de outra classe de carro (TurboCar)?
Estou herdando um objeto Engine simples e antigo e não posso declará-lo (ou substituí-lo) como um TurboEngine nas subclasses Car.
EDITAR: Entendo que posso conectar qualquer subclasse de Engine à referência myEngine na minha classe Ferrari ... mas como posso chamar métodos que apenas o TurboEngine expõe? Como o myEngine é herdado como um mecanismo básico, nenhum dos itens turbo está incluído.
Obrigado!