Aufrufen einer Child-Klasse-Methode beim Verarbeiten einer Liste von Parent-Klassenobjekten
Diese Frage scheint etwas häufig zu sein, aber ich habe nichts gefunden, als ich StackOverflow oder die Interwebs abgeschreckt habe.
Ich bin auf eine Methode in einer C ++ - Klasse gestoßen, die eine Liste von (zum Beispiel)Parent
Objekte. Nehmen Sie für dieses Beispiel an, dass es zwei Klassen gibt, die von abgeleitet sindParent
: Child1
undChild2
.
Für jedes Objekt in der Liste prüft die Methode, ob das Objekt vom Typ istChild2
(über einIsOfType()
Methode, die jede Klasse implementiert), und in diesem Fall ruft sie eine Methode auf, die nur von der KlasseChild2
Klasse.
Ist dies ein Problem, da die Listenverarbeitungsmethode nicht jedes Objekt gleich behandeln kann? Ich habe dies auch an anderen Orten gesehen, so dass es zu einem gewissen Grad eine gängige Praxis zu sein scheint.
Eine Möglichkeit könnte sein, das zu deklarierenChild2
Methode in derParent
klasse damit alleParent
Objekte implementieren es. In diesem Fall ist jedoch nur dieChild2
Klasse würde tatsächlich jedes Verhalten beim Überschreiben der Methode implementieren.
Ihre Gedanken? Danke im Voraus!