Thread Klassen-Attribut auch in der Base-Klassen nutzen (5 answers)
Opened by Hagen at 2021-04-14 23:15

haj
 2021-04-15 09:49
#193213 #193213
User since
2015-01-07
555 Artikel
BenutzerIn

user image
2021-04-14T21:15:55 Hagen
ich würde gerne in einer Kind-Klassen ein Konfiguration definieren, auf die ich auch in der Eltern-Klassen zugreifen kann. Aber irgendwie finde ich keine schicke Lösung dafür bzw. der Zugriff funktioniert nicht.

Der Ansatz ist etwas bergauf gedacht: Eine Eltern-Klasse sollte nicht wissen müssen, ob Kind-Klassen überhaupt existieren und kann daher nicht so einfach auf Daten der Kind-Klasse zugreifen. Das dürfte auch erklären, warum eine Recherche hier nicht zum direkten Erfolg führt.

2021-04-14T21:15:55 Hagen
An anderen Stellen habe ich gesehen, dass man Methoden überschreibt. D.h. in der Eltern-Klasse gibt es die Methode 'getTable', die aber leer ist; in der Kindklasse wird diese dann überschrieben, so dass sie im aktuellen Beispiel 'service' zurückgeben würde.

Das ist eine übliche Technik für diese Aufgabe. Du willst mit einer Methode aus der Eltern-Klasse auf Klassendaten unterschiedlicher Kinder zugreifen und musst daher, je nach dem Typ eines Objekts, in den Gültigkeitsbereich unterschiedlicher Klassen reingreifen.

Die Methode getTable wird in der Eltern-Klasse dann oft so implementiert, dass sie nicht leer ist, sondern lautstark stirbt, um klarzumachen, dass Kind-Klassen hier etwas zu tun gehabt hätten.

Bei den vom Linuxer beschriebenen Techniken wird die richtige Konfiguration den einzelnen Objekten schon bei deren Erstellung untergeschoben. Das gefällt mir gut, weil ich in Deinem Beispiel davon ausgehe, dass jedes Objekt während seiner Lebensdauer die Konfiguration irgendwann einmal brauchen wird.

View full thread Klassen-Attribut auch in der Base-Klassen nutzen