Wie kann ich auf eine Superklassenmethode aus einer Kindklassenmethode zugreifen? HierZugriff auf Elementfunktion der Superklasse
ist ein Beispiel, das das Problem veranschaulicht: Lassen Sie uns sagen, wir haben zwei Klassen
class parent definition.
public section.
methods f.
endclass.
class child definition inheriting from parent.
public section.
methods f redefinition.
methods g.
endclass.
nun bei der Umsetzung von g
wir die Super-Klasse Implementierung von f
ähnlich der anzurufenden folgende syntaktisch falsch Schnipsel
class child implementation.
method g.
super->f(). "forbidden: super-> can only be used to call the previous implementation of the same method
endmethod.
endclass.
Wie im Kommentar erwähnt, ist es nicht möglich, super->
zu verwenden. Kannst du helfen?
Nach einigen googeln, wurde vorgeschlagen, die Umsetzung der parent->f
in child->g
ist dies wirklich der einzige Weg, es zu tun zu kopieren?
Die eigentliche Anwendungsfall
@vwegert gefragt, warum f
in erster Linie neu definiert wird. In meinem realen Anwendungsfall ist parent
eine Ansicht und child
seine Erweiterung. child->f
ist ein Event-Handler, der ein Popup auslösen soll. child
empfängt einen Rückruf, wenn das Popup in Form eines Aufrufs an g
geschlossen wird. Wenn g
aufgerufen wird, sollte die ursprüngliche Implementierung parent->f
aufgerufen werden.
Warum definieren Sie die Methode an erster Stelle ...? – vwegert
@vwegert Ich habe der Frage den tatsächlichen Anwendungsfall hinzugefügt, aber ich glaube, dass die allgemeine Frage auch eine Antwort verdient. – niklasfi