Konstruktoren-Probleme....

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Konstruktoren-Probleme....

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Moin,

ich baue ein Objekt der Klasse subcls, die von supercls erbt. Wir nehmen an, beide Klassen haben einen Constructor und eine Methode init. Wenn ich das Objekt subcls erzeuge, in dessen Constructor die Methode init aufgerufen wird, wird die init von supercls ausgeführt, nicht die von subcls.

Warum ist das so? Wie löse ich das Problem, dass ich bestimmte Dinge beim Objektebauen durchführen muss - und zwar klassenspezifisch (also die init von subcls).


Ralf

Hab gerade beiläufig einen Hinweis bekommen
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: Konstruktoren-Probleme....

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Alles, was in der SUPER Klasse ausgeführt wird, geschieht auch in der SUPER-Klasse... Wenn beide Constructors einen INIT durchführen, dann wird der in der jeweiligen Klasse ausgeführt. Das ist IMHO mit ein Grund, weswegen man eigentlich so gut wie nichts im CONSTRUCTOR selbst durchführen sollte. Dafür gibt es dann ja die Erbauer-Entwurfsmuster, die sicherstellen, dass INIT-Routinen nach der Erzeugung ausgeführt werden.

Wenn sie im CONSTRUCTOR selbst aufgerufen werden, hat das evtl. zur Folge, dass in jeder Klasse teure Laufzeit verbraten wird, obwohl eigentlich nur die Sub-Sub-Klasse den Init durchführen müsste.

Re: Konstruktoren-Probleme....

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Du hast den von mir verlinkten Artikel gelesen?


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

Re: Konstruktoren-Probleme....

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Ja, ist schon länger her. Habe ihn eben nochmal gelesen.
Und auf was willst du hinaus?

Re: Konstruktoren-Probleme....

Beitrag von AdrianSchm (ForumUser / 33 / 4 / 4 ) »
Gibt eine Möglichkeit das zu umgehen indem man in dem Konstruktor der Superklasse wieder auf die Subklasse Castet. Dann kannst du die Methoden der Subklasse aufrufen. Ist aber nicht schön. Programmiere aktuell nur noch mit Factorys und keine Parameter in den Konstruktoren.

Re: Konstruktoren-Probleme....

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
AdrianSchm hat geschrieben:
24.06.2019 15:09
Gibt eine Möglichkeit das zu umgehen indem man in dem Konstruktor der Superklasse wieder auf die Subklasse Castet. Dann kannst du die Methoden der Subklasse aufrufen.
Wie soll das bitte gehen?
Hast du ein Beispiel dafür?

Re: Konstruktoren-Probleme....

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
AdrianSchm hat geschrieben:
24.06.2019 15:09
Gibt eine Möglichkeit das zu umgehen indem man in dem Konstruktor der Superklasse wieder auf die Subklasse Castet. Dann kannst du die Methoden der Subklasse aufrufen. Ist aber nicht schön. Programmiere aktuell nur noch mit Factorys und keine Parameter in den Konstruktoren.
Man kann innerhalb des Konstruktors nicht auf die Unterklasse casten. SAP gibt einem da sogar einen Kurzdump mit einer sehr! detaillierten Fehlermeldung, die noch mal das beschreibt was Ralf schon verlinkt hatte.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Konstruktoren-Probleme....

Beitrag von AdrianSchm (ForumUser / 33 / 4 / 4 ) »
Kann das am Donnerstag nochmal nachschauen wie ich das Programmiert habe.

Grüße Adrian

Re: Konstruktoren-Probleme....

Beitrag von AdrianSchm (ForumUser / 33 / 4 / 4 ) »
Sry hatte voll vergessen dazu noch was zu schreiben. Der Kunde bei welchem ich das entwickelt hat die Klasse auch schon wieder ausgetauscht weil das auch nen bisschen gepfuscht war aber es ging in etwa so. In den Konstruktor der Superklasse einfach einen optionalen Parameter von type ref Superclass welchen dann beim Aufruf des Konstruktors aus der Subklasse mit me übergibt. Dann kann in der Superklasse der Import Parameter auf die Subklasse gecastet werden.

Irgenwie so hat das funktioniert.

Grüße Adrian

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1795
Views
Probleme mit Typ RAW
von PeterPaletti » 28.08.2015 14:36 • Verfasst in ABAP® für Anfänger
1
Antw.
1180
Views
FI-SL Probleme
von AW » 11.08.2005 18:30 • Verfasst in Financials
5
Antw.
2326
Views
Probleme mit JOIN
von robin1at » 07.06.2006 12:15 • Verfasst in ABAP® für Anfänger
1
Antw.
3986
Views
Probleme mit BAPI_SALESORDER_CHANGE
von sxby » 17.11.2005 10:05 • Verfasst in ABAP® Core
32
Antw.
11754
Views
Performance-Probleme
von MarkusW » 11.05.2007 09:28 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Stunde von a-dead-trousers gelöst 6 / 6010
ABAP - Mail so10 Text
vor 2 Stunden von retsch 6 / 113
selection-screen comment mit icon
vor 11 Stunden von DeathAndPain 9 / 1159

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.

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Stunde von a-dead-trousers gelöst 6 / 6010
ABAP - Mail so10 Text
vor 2 Stunden von retsch 6 / 113
selection-screen comment mit icon
vor 11 Stunden von DeathAndPain 9 / 1159

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 5 Tagen von Manfred K. 1 / 930
BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Wochen von snooga87 1 / 2735