Ich werde versuchen, meine Frage im Zusammenhang mit einem einfachen Beispiel zu stellen ...Wie verwende ich Komposition mit Vererbung?
Nehmen wir an, ich habe eine abstrakte Basisklasse Auto. Auto hat - ein grundlegendes Motorobjekt. Ich habe eine Methode StartEngine() in der abstrakten Auto-Klasse, die den Start der Engine an das Engine-Objekt delegiert.
Wie erlaube ich Unterklassen von Car (wie Ferrari), das Engine-Objekt als eine bestimmte Art von Motor (z. B. TurboEngine) zu deklarieren? Brauche ich eine andere Auto-Klasse (TurboCar)?
Ich erben ein einfaches altes Engine-Objekt und ich kann es nicht als TurboEngine in meinen Auto-Unterklassen re-deklarieren (oder überschreiben).
EDIT: Ich verstehe, dass ich jede Unterklasse der Engine in myEngine Referenz innerhalb meiner Ferrari-Klasse schließen kann ... aber wie kann ich Methoden aufrufen, die nur die TurboEngine ausgesetzt ist? Da myEngine als Basis-Engine vererbt wird, ist keines der Turbo-Elemente enthalten.
Danke!
Ooooh! Wunderbar! Ich wusste nie, dass es ein * Auto-Analog * -Tag in SO gab! –