Ansicht
Dokumentation

ABENINHERITANCE_GUIDL - INHERITANCE GUIDL

ABENINHERITANCE_GUIDL - INHERITANCE GUIDL

rdisp/max_wprun_time - Maximum work process run time   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Vererbung

Als Vererbung bezeichnet man die Ableitung sogenannter Unterklassen von einer Oberklasse, wobei die Unterklasse die Komponenten der Oberklasse übernimmt. Eine Unterklasse kann durch die Deklaration neuer Komponenten und die Redefinition von Instanzmethoden spezialisiert werden. ABAP Objects unterstützt die Einfachvererbung, bei der eine Klasse zwar mehrere Unterklassen; aber nur eine direkte Oberklasse haben kann. (Im Zusammenhang mit dem dazu orthogonalen Konzept der Interfaces entsteht dennoch etwas Ähnliches wie eine Mehrfachvererbung, zumindest in Bezug auf Attribute und Methodendeklarationen. Methodenimplementierungen werden jedoch durch die Einbindung eines Interface nicht vererbt.) Dadurch entsteht eine Vererbungshierarchie in Form eines Vererbungsbaums, bei dem von jeder Unterklasse ein eindeutiger Pfad zu einer Wurzelklasse führt. In ABAP Objects sind alle Klassen Unterklassen der vordefinierten abstrakten Wurzelklasse object. Finale Klassen, das heißt Klassen, die mit dem Zusatz FINAL definiert sind; schließen einen Pfad des Vererbungsbaums nach unten ab.

Tiefe Vererbungshierarchien vermeiden

Vermeiden Sie tiefe Vererbungshierarchien, da sich diese leicht zu einem Wartungsproblem entwickeln können.

Tiefe Vererbungshierarchien sind zwar im positiven Sinne Ausdruck erfolgreich realisierter Wiederverwendung, stellen sich aber häufig auch als Wartungsproblem heraus, da sie aufgrund der großen Anzahl beteiligter Klassen inhärent komplex sind:

  • Das Verhalten von Klassen weit unten in der Vererbungshierarchie ist schwer nachzuvollziehen, da diese potenziell viele Methoden erben.
  • Klassen mit vielen Unterklassen haben einen großen Einfluss auf das Gesamtsystem, was die Auswirkungen von Änderungen an einer Oberklasse schwer kalkulierbar macht.
  • Eine große Anzahl von Unterklassen kann auch ein Hinweis auf eine ungeeignete Abstraktion sein.

Um eine ungewollte Wiederverwendung eigener Klassen durch Vererbung zu verhindern, empfiehlt es sich, die Pfade von Vererbungsbäumen mit finalen Klassen abzuschließen.

Hinweis

Geht es darum, die Möglichkeiten der Polymorphie auszunutzen, sind Interfaces im Vergleich zur Vererbung oft die unproblematischere Lösung. Vor allem wenn es nur darum geht, Schnittstellen wiederzuverwenden, sind Interfaces der Verwendung abstrakter Klassen vorzuziehen. Dabei lassen sich auch zusammengesetzte Interfaces bilden. Eine zusammengesetzte Schnittstelle ließe sich in ABAP aufgrund der Einfachvererbung mit Klassen allein hingegen nicht realisieren.






CL_GUI_FRONTEND_SERVICES - Frontend Services   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 2957 Date: 20240523 Time: 165446     sap01-206 ( 69 ms )