ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Deklarationen →  Deklarationsanweisungen →  Klassen und Interfaces →  Komponenten in Klassen und Interfaces →  Interfaces implementieren bzw. einbinden →  INTERFACES → 

INTERFACES - integration

Kurzreferenz

Syntax

INTERFACES intf.

Wirkung

In der Deklaration eines Interfaces bindet die Anweisung INTERFACES das Interface intf in dem deklarierten Interface ein. Die Angabe von Zusätzen ist nicht möglich. Das Interface intf wird dadurch zum Komponenten-Interface eines zusammengesetzten Interfaces.

Ein Interface kann aus beliebig vielen verschiedenen Interfaces zusammengesetzt werden. Alle Komponenten-Interfaces liegen gleichberechtigt auf einer Ebene. Wenn ein Komponenten-Interface selbst zusammengesetzt ist, d.h. Komponenten-Interfaces enthält, spielt die Schachtelungshierarchie keine Rolle für die Zusammensetzung des Interfaces, aber für die Zugriffsmöglichkeiten auf Interfacekomponenten.

Um innerhalb eines zusammengesetzten Interfaces auf die Komponente comp eines Komponenten-Interfaces intf zuzugreifen, kann der Ausdruck intf~comp mit dem Interfacekomponenten-Selektor ( ~) verwendet werden. Die mehrfache Verwendung des Interfacekomponenten-Selektors in einem Bezeichner ( intf1~intf2~comp) ist prinzipiell nicht möglich. In einem zusammengesetzten Interface kann mit dem Interfacekomponenten-Selektor nur auf die Interfacekomponenten der Komponenten-Interfaces zugegriffen werden, die in diesem Interface mit der Anweisung INTERFACES eingebunden werden. Da aber alle geschachtelten Interfaces auf einer Ebene liegen, genügt dies, um auf die Interfacekomponenten aller Komponenten-Interfaces über den Namen ihres Interfaces zuzugreifen.

Hinweise

Beispiel

Dieses Beispiel zeigt, wie mit der Anweisung INTERFACES Interfaces zusammengesetzt und implementiert werden. Die Klasse c1 implementiert die zusammengesetzten Interfaces i2 und i3. Obwohl i1 Komponenten-Interface von i2 und i3 ist, ist es in der Klasse c1 nur einmal vorhanden. Mit einer Referenzvariablen iref1 vom statischen Typ i1 wird ein Objekt der Klasse c1 erzeugt und die dort implementierte Methode i1~m1 aufgerufen.

INTERFACE i1.
  METHODS m1.
ENDINTERFACE.

INTERFACE i2.
  INTERFACES i1.
  METHODS m2.
ENDINTERFACE.

INTERFACE i3.
  INTERFACES i1.
  METHODS m3.
ENDINTERFACE.

CLASS c1 DEFINITION.
  PUBLIC SECTION.
    INTERFACES: i2, i3.
ENDCLASS.

CLASS c1 IMPLEMENTATION.
  METHOD i1~m1.
    ...
  ENDMETHOD.
  METHOD i2~m2.
    ...
  ENDMETHOD.
  METHOD i3~m3.
    ...
  ENDMETHOD.
ENDCLASS.

DATA iref1 TYPE REF TO i1.

START-OF-SELECTION.

  CREATE OBJECT iref1 TYPE c1.
  iref1->m1( ).