Code: Alles auswählen.
CLASS zcl_fahrzeug DEFINITION PUBLIC ABSTRACT.
PUBLIC SECTION.
TYPES: BEGIN OF tys_fahrzeug,
hersteller TYPE string,
modell TYPE string,
kennzeichen TYPE string,
anzahl_sitze TYPE i,
END OF tys_fahrzeug,
tyt_fahrzeug TYPE SORTED TABLE OF tys_fahrzeug WITH UNIQUE KEY kennzeichen.
METHODS constructor IMPORTING
i_hersteller TYPE string
i_modell TYPE string
i_kennzeichen TYPE string.
METHODS get_fahrzeug RETURNING VALUE(rt_fahrzeug) TYPE tyt_fahrzeug.
PROTECTED SECTION.
PRIVATE SECTION.
DATA hersteller TYPE string.
DATA modell TYPE string.
DATA kennzeichen TYPE string.
ENDCLASS.
CLASS zcl_fahrzeug IMPLEMENTATION.
METHOD constructor.
hersteller = i_hersteller.
modell = i_modell.
kennzeichen = i_kennzeichen.
ENDMETHOD.
METHOD get_fahrzeug.
rt_fahrzeug = VALUE #( ( hersteller = hersteller kennzeichen = kennzeichen modell = modell ) ).
ENDMETHOD.
ENDCLASS.
Code: Alles auswählen.
CLASS zcl_pkw DEFINITION
PUBLIC
INHERITING FROM zcl_fahrzeug
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor IMPORTING
i_hersteller TYPE string
i_anzahl_sitze TYPE i
i_modell TYPE string
i_kennzeichen TYPE string.
METHODS get_fahrzeug REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
DATA anzahl_sitze TYPE i.
ENDCLASS.
CLASS zcl_pkw IMPLEMENTATION.
METHOD constructor.
super->constructor( i_hersteller = i_hersteller i_modell = i_modell i_kennzeichen = i_kennzeichen ).
anzahl_sitze = i_anzahl_sitze.
ENDMETHOD.
METHOD get_fahrzeug.
rt_fahrzeug = super->get_fahrzeug( ) .
rt_fahrzeug = VALUE #( BASE rt_fahrzeug ( anzahl_sitze = anzahl_sitze ) ).
ENDMETHOD.
ENDCLASS.
Code: Alles auswählen.
CLASS zcl_runclass DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_runclass IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DATA pkw TYPE ref to zcl_pkw.
pkw = new #( i_hersteller = 'BMW' i_kennzeichen = 'HD123' i_modell = 'I4' i_anzahl_sitze = 5 ).
out->write( pkw->get_fahrzeug( ) ).
ENDMETHOD.
ENDCLASS.