Ansicht
Dokumentation

ABENINHERITANCE_STATICAL - INHERITANCE STATICAL

ABENINHERITANCE_STATICAL - INHERITANCE STATICAL

ROGBILLS - Synchronize billing plans   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Vererbung und statische Komponenten

Statische Komponenten sind wie alle Komponenten nur einmal pro Vererbungsbaum vorhanden und können ab der deklarierenden Klasse verwendet werden:

  • Eine Unterklasse kann auf alle nicht privaten statischen Komponenten ihrer Oberklassen zugreifen. Dabei wird immer die Klasse angesprochen, in der die statische Komponente deklariert ist.
  • Von außen kann über den Klassenkomponenten-Selektor auf alle sichtbaren statischen Komponenten zugegriffen werden. Dabei kann jede Klasse angegeben werden, in der die Komponente vorhanden ist, d.h., die deklarierende Klasse und jede Unterklasse. Unabhängig vom im Klassenkomponenten-Selektor verwendeten Klassennamen wird aber immer die Klasse angesprochen, in der die Komponente deklariert ist.

Dass sowohl bei der internen als auch bei der externen Verwendung einer statischen Komponente immer die Klasse angesprochen wird, in der die Komponente deklariert ist, ist wichtig für:

Ein statischer Konstruktor wird bei der ersten Ansprache einer Klasse aufgerufen. Wenn eine statische Komponente über den Klassennamen einer Unterklasse adressiert wird, aber in einer Oberklasse deklariert ist, wird nur der statische Konstruktor der Oberklasse aufgerufen.
Eine Unterklasse hat Zugriff auf den Inhalt aller nicht-privaten statischen Attribute aller Oberklassen. Umgekehrt teilt sich eine Oberklasse ihre öffentlichen und geschützten statischen Attribute mit allen Unterklassen. Statische Attribute sind in der Vererbung also nicht nur in einer einzigen Klasse, sondern sozusagen im Teilbaum des Vererbungsbaums verwendbar, der aus allen Unterklassen der definierenden Klasse besteht. Änderungen der Werte sind in allen beteiligten Klassen sichtbar, unabhängig von der Klasse, aus der bzw. über die ein Attribut angesprochen wurde.
Wenn ein Ereignisbehandler für ein von einer Oberklasse geerbtes statisches Ereignis einer Unterklasse deklariert wird, kann er nur auf dieses reagieren, wenn es von einer Methode der Unterklasse oder einer ihrer Unterklassen ausgelöst wird. Wenn das Ereignis in einer statischen Methode einer Oberklasse ausgelöst wird, wird es nicht behandelt, auch wenn der Aufruf der Methode in einer Unterklasse erfolgt oder dabei der Name der Unterklasse angegeben wird.

Hinweis

Um zu erreichen, dass ein statisches Attribut einer Klasse nicht von allen Unterklassen mit benutzt wird, kann es als privates Attribut deklariert werden.

Beispiel

Aufruf einer statischen Methode einer Oberklasse über den Namen einer Unterklasse. Vor Ausführung der Methode wird der statische Konstruktor der Oberklasse ausgeführt aber nicht der statische Konstruktor der Unterklasse. Die Methode gibt den in der Oberklasse gesetzten Wert zurück.

Beispiel

Das folgende Beispiel zeigt, wie über eine Unterklasse ein statisches Attribut einer Oberklasse geändert wird und dass die Änderung in einer Unterklasse eines anderen Pfads des Vererbungsbaums sichtbar ist.

Ereignisse in der Vererbung






Addresses (Business Address Services)   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4084 Date: 20240523 Time: 153102     sap01-206 ( 106 ms )