Einführendes Beispiel zu Interfaces 

Das folgende einfache Beispiel zeigt ein Interface STATUS zur Ausgabe der Attribute eines Objekts und seine Implementierung in zwei unterschiedlichen Klassen.

REPORT demo_interface.

INTERFACE status.
  METHODS write.
ENDINTERFAC E.

CLASS counter DEFINITION.
  PUBLIC SECTION.
    
INTERFACES status.
    METHODS increment.
  PRIVATE SECTION.
    DATA count TYPE i.
ENDCLASS.

CLASS counter IMPLEMENTATION.
  METHOD
status~write .
    WRITE: / 'Count in counter is', count.
  ENDMETHOD.
  METHOD increment.
    ADD 1 TO count.
  ENDMETHOD.
ENDCLASS.

CLASS bicycle DEFINITION.
  PUBLIC SECTION.
    
INTERFACES status.
    METHODS drive.
  PRIVATE SECTION.
    DATA speed TYPE i.
ENDCLASS.

CLASS bicycle IMPLEMENTATION.
  METHOD
status~write .
    WRITE: / 'Speed of bicycle is', speed.
  ENDMETHOD.
  METHOD drive.
    ADD 10 TO speed.
  ENDMETHOD.
ENDCLASS.

Das Interface STATUS enthält eine Methode WRITE. Die Klassen COUNTER und BICYCLE implementieren das Interface im öffentlichen Bereich. Beide Klassen müssen die Interfacemethode im Implementierungsteil entsprechend der geforderten Semantik implementieren.

Im folgenden sehen Sie, wie ein Verwender über Interfacereferenzen auf die Objekte beider Klassen zugreifen kann: