Übung Schrödinger: 09 Vererbung (ABAP): Unterschied zwischen den Versionen

Aus MattWiki
K (Matt verschob die Seite Übung Schrödinger: 09 Vererbung lokal (ABAP) nach Übung Schrödinger: 09 Vererbung (ABAP), ohne dabei eine Weiterleitung anzulegen)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Beispiellisting für Vererbung in lokalen Klassen aus Kapitel 09 im Buch Schrödinger programmiert ABAP.
Beispiellisting für Vererbung in lokalen Klassen aus Kapitel 09 im Buch Schrödinger programmiert ABAP.
Aus lokalen Klassen in einem ABAP-Programm können auch automatisch globale Klassen erstellt werden.
Dazu mit SE24 den Class Builder starten und dann aus dem Menü auswählen: Objekttyp → Importieren → Programmlokale Klassen


<syntaxhighlight lang="abap">
<syntaxhighlight lang="abap">

Version vom 13. April 2018, 22:47 Uhr

Beispiellisting für Vererbung in lokalen Klassen aus Kapitel 09 im Buch Schrödinger programmiert ABAP.

Aus lokalen Klassen in einem ABAP-Programm können auch automatisch globale Klassen erstellt werden.

Dazu mit SE24 den Class Builder starten und dann aus dem Menü auswählen: Objekttyp → Importieren → Programmlokale Klassen

REPORT zsch_matt_beer.

CLASS lcl_bier DEFINITION.
  PUBLIC SECTION.
    DATA: gd_stammwuerze TYPE p LENGTH 3 DECIMALS 2 VALUE '12.50'.
    TYPES: gdt_alkoholgehalt LIKE gd_stammwuerze.
    METHODS: write_stammwuerze,
             write_volumen,
             set_alkoholgehalt
             IMPORTING id_alkoholgehalt TYPE gdt_alkoholgehalt,
             brauen.
  PROTECTED SECTION.
    DATA: gd_volumen TYPE p LENGTH 4 DECIMALS 2 VALUE 333.
  PRIVATE SECTION.
    DATA: gd_alkoholgehalt TYPE gdt_alkoholgehalt VALUE '4.50'.
ENDCLASS.

CLASS lcl_bier IMPLEMENTATION.
  METHOD write_stammwuerze.
    WRITE:  / `Stammwürze: `, me->gd_stammwuerze.
  ENDMETHOD.

  METHOD write_volumen.
    WRITE:  / `Volumen: `, me->gd_volumen.
  ENDMETHOD.

  METHOD set_alkoholgehalt.
    me->gd_alkoholgehalt = id_alkoholgehalt.
  ENDMETHOD.

  METHOD brauen.
    WRITE: / 'Ich braue und braue Bier den ganzen lieben langen Tag.'.
  ENDMETHOD.
ENDCLASS.

CLASS lcl_bier_untergaerig DEFINITION INHERITING FROM lcl_bier.
  PUBLIC SECTION.
    METHODS: brauen REDEFINITION.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS lcl_bier_untergaerig IMPLEMENTATION.
  METHOD brauen.
    CALL METHOD super->brauen.
    WRITE: / 'Sogar untergärig'.
  ENDMETHOD.
ENDCLASS.

CLASS lcl_koelsch DEFINITION INHERITING FROM lcl_bier.
  PUBLIC SECTION.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS lcl_koelsch IMPLEMENTATION.
ENDCLASS.

DATA: gr_untergaerig TYPE REF TO lcl_bier_untergaerig.

START-OF-SELECTION.

  CREATE OBJECT gr_untergaerig.
  CALL METHOD gr_untergaerig->write_stammwuerze.
  CALL METHOD gr_untergaerig->write_volumen.
  CALL METHOD gr_untergaerig->brauen.