>>immer nur ein Objekt aber es gibt mehrere mögliche Typen
Verschiedene Typen kannst du nicht in einer gemeinsamen Variable
speichern.
Wahrscheinlich schwebt dir vor, dass die Objekte um die es geht
"sinngemäß" das gleiche tun, dieses aber jeweils auf eine andere Art?
Das ist die Spielwiese für Interfaces.
Die Variable, welche die Referenz hält, ist dann vom Typ des Interfaces.
Wenn jede Klasse, welche das Interface implementiert für jede Methode
eine andere Implementierung hat, brauchst du keine Basisklasse.
Gibt es aber im Interface einen Pool an Methoden, die in jeder späteren
Instanz gleich ist, dann macht eine Basisklasse Sinn. Die währe dann
nicht instanziierbar, weil sie nicht ALLE Methoden des Interfaces
implementiert.
Diese werden dann in den letztendlichen Klassen implementiert.
>Interface_ABC definiert Methode A ; B und C
>BaseClass_AB ergbt von Interface "ABC" und implementiert nur Methode A und B
>Variant_1_Class_C erbt von BaseClass_AB und implementiert Methode C
>Variant_2_Class_C erbt von BaseClass_AB und implementiert Methode C
>Beide Variant Klassen kannst du jetzt in einem Zeiger vom Typ Interface_ABC
>referenzieren.