Aufruf der super-Methode erzwingen

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Aufruf der super-Methode erzwingen

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Moin,

ich habe eine globale abstrakte Klasse und möchte bei bestimmten Methoden, dass erbende Klasse meine Methode aufrufen, falls die Methode redefiniert wird. Ich möchte also ein

Code: Alles auswählen.

method meth.
super->meth. 
(.....redefinierendes Coding....) 
endmethod
erzwingen, damit mein Coding zwingend vor dem Coding der redefinierten Methode abläuft.

Geht das?
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Aufruf der super-Methode erzwingen

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
Schwer...

Das könnte in anderen Fällen ja auch richtig sein:

Code: Alles auswählen.

method meth.
  (.....redefinierendes Coding....)
  super->meth.
endmethod
Die redefinierende Methode muss vorab etwas ändern, damit die SUPER-Methode richtig weiterarbeitet.

Das einzige was mir einfiele, wäre eine private Prüfvariable zu verwenden die beim Aufruf der SUPER-Methode gesetzt wird. Wenn diese nicht gesetzt wurde, kann man davon ausgehen, dass die SUPER-Methode nicht (nie?) aufgerufen wurde (wird).

lg ADT

P.S.: Das einzige wo zwingend die SUPER-Methode aufgerufen werden muss ist der CONSTRUCTOR und da sogar so weit, dass dieser Aufruf nicht durch ein IF und dergleichen umschlossen werden darf.
P.P.S.: Solange man sich im CONSTRUCTOR befindet, wird auch die Vererbung der anderen Methoden ignoriert. Sprich der SUPER-Constructor ruft nur die SUPER-Methoden auf.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Aufruf der super-Methode erzwingen

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
Etwa so könntest du das machen:

Code: Alles auswählen.

*----------------------------------------------------------------------*
*       CLASS lcl_parent DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_parent DEFINITION.
  PUBLIC SECTION.
    METHODS: do_something             FINAL,
             do_something_child.
ENDCLASS.                    "lcl_parent DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_parent IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_parent IMPLEMENTATION.
  METHOD do_something.
* Hier der Teil von dem du möchtest, dass er vor der Redefinition durchlaufen wird.    
    do_something_child( ).
  ENDMETHOD.                    "do_something

  METHOD do_something_child.
* Leer lassen - hier darf sich die Redefinition austoben    
  ENDMETHOD.                    "do_something_child
ENDCLASS.                    "lcl_parent IMPLEMENTATION

noch nachträglich hinzugefügt um 11:21
P.S. Die Methode do_something_child wäre wahrscheinlich als "PROTECTED" besser aufgehoben.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

1
Antw.
609
Views
Aufruf redifinierter Methode im Super Konstruktor
von nickname8 » 07.03.2021 13:31 • Verfasst in ABAP Objects®
8
Antw.
1086
Views
Automatisierter aufruf einer Methode
von Ichse2 » 29.09.2020 10:10 • Verfasst in ABAP Objects®
1
Antw.
1608
Views
Aufruf Event-Methode aus verschiedenen Klassen
von brueno66 » 11.02.2007 11:53 • Verfasst in ABAP Objects®
6
Antw.
4230
Views
Aufruf von ViewController-Methode aus Component-Controller
von fba9901 » 07.04.2015 11:42 • Verfasst in Web-Dynpro, BSP + BHTML
3
Antw.
221
Views
HTTPS Aufruf mit Parameter mit POST Methode
von stony007_de » 21.11.2022 12:29 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.