* Einfache Klassen für Demo für Verwendung von Interfaces
* Über Interfaces kann im ABAP Mehrfachvererbung (Polymorphie) realisiert werden
* Interface, dient als Schablone, ohne Implementierungen
INTERFACE lif_auto.
METHODS:
* Interface-Methode, liefert Fahrtrichtung
get_direction
RETURNING VALUE(rv_direction) TYPE string.
ENDINTERFACE.
* Klasse Kombi, spezialisert das Interface lif_auto
CLASS lcl_kombi DEFINITION.
PUBLIC SECTION.
* Implementiert das Interface lif_auto
INTERFACES:
lif_auto.
* ALias-Namen als Vereinfachung für Zugriff definieren
ALIASES:
get_direction FOR lif_auto~get_direction.
METHODS:
get_name
RETURNING VALUE(rv_name) TYPE string.
ENDCLASS.
CLASS lcl_kombi IMPLEMENTATION.
* Implementierung der Interface-Methode, liefert Fahrtrichtung
METHOD lif_auto~get_direction.
rv_direction = 'Berlin'.
ENDMETHOD.
* Instanzmethode, liefert Namen
METHOD get_name.
rv_name = 'Opel'.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
* Objekt der Klasse Kombi + Funktionsaufruf
DATA(o_ref) = NEW lcl_kombi( ).
* Aufruf der Instanzmethode
WRITE: / 'Name:', o_ref->get_name( ).
* Aufruf der Interfacemethode allgemein
WRITE: / 'Direction:', o_ref->lif_auto~get_direction( ).
* Aufruf der Interfacemethode über Alias-Namen (ALIASES)
WRITE: / 'Direction:', o_ref->get_direction( ).