Skip to Content
author's profile photo Former Member
Former Member

build class taht inhertance from class

Hi,

i build Z Class in se24 and i wont to build other Class that inheritance from it ,

how can i do that (i think i have to use superclass in properties but i need all the step from begining ?

Regards

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

2 Answers

  • Best Answer
    Posted on Aug 10, 2008 at 09:27 AM

    > i build Z Class in se24 and i wont to build other Class that inheritance from it ,

    > (i think i have to use superclass in properties but i need all the step from begining

    include the first class in second class as Super class in the Attributes section. that you already know...

    Now go to methods and what ever method you want to redefine, just select and click on Redefine button and redefine. and if you want to include any attributes you can include the new attributes.

    activate finally.

    But i dont know what steps you are looking for, the main step is including the superclass. that you already know.

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Aug 10, 2008 at 05:45 PM

    Hi Ricardo,

    Below code might help you to solve the problem.

    *&---------------------------------------------------------------------*
    *& Report  Z7CC_OBJECT1
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*
    
    REPORT  Z7CC_OBJECT1.
    
    *---------------------------------------------------------------------*
    *       Global Selection Screen
    *---------------------------------------------------------------------*
    
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS WINDOW  TITLE text-100.
    PARAMETERS: button1 RADIOBUTTON GROUP grp,
                button2 RADIOBUTTON GROUP grp,
                button3 RADIOBUTTON GROUP grp,
                button4 RADIOBUTTON GROUP grp.
    SELECTION-SCREEN END OF SCREEN 100.
    
    *---------------------------------------------------------------------*
    *       INTERFACE status
    *---------------------------------------------------------------------*
    *       Interface definition                                          *
    *---------------------------------------------------------------------*
    INTERFACE status.
      METHODS write.
    ENDINTERFACE.
    
    *---------------------------------------------------------------------*
    *       CLASS vessel DEFINITION
    *---------------------------------------------------------------------*
    *       Superclass definition                                         *
    *---------------------------------------------------------------------*
    CLASS vessel DEFINITION.
      PUBLIC SECTION.
        METHODS: constructor,
                 drive IMPORTING speed_up TYPE i,
                 get_id RETURNING value(id) TYPE i.
      PROTECTED SECTION.
        DATA: speed TYPE i,
              max_speed TYPE i VALUE 100.
      PRIVATE SECTION.
        CLASS-DATA object_count TYPE i.
        DATA id TYPE i.
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *       CLASS vessel IMPLEMENTATION
    *---------------------------------------------------------------------*
    *       Superclass implementation                                     *
    *---------------------------------------------------------------------*
    CLASS vessel IMPLEMENTATION.
      METHOD constructor.
        object_count = object_count + 1.
        id = object_count.
      ENDMETHOD.
      METHOD drive.
        speed = speed + speed_up.
        IF speed > max_speed.
          speed = max_speed.
        ENDIF.
      ENDMETHOD.
      METHOD get_id.
        id = me->id.
      ENDMETHOD.
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *       CLASS ship DEFINITION
    *---------------------------------------------------------------------*
    *       Subclass definition                                           *
    *---------------------------------------------------------------------*
    CLASS ship DEFINITION INHERITING FROM vessel.
      PUBLIC SECTION.
        INTERFACES status.
        DATA name TYPE string READ-ONLY.
        METHODS: constructor IMPORTING name TYPE string,
                 drive REDEFINITION.
        EVENTS emergency_call.
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *       CLASS ship IMPLEMENTATION
    *---------------------------------------------------------------------*
    *       Subclass implementation                                       *
    *---------------------------------------------------------------------*
    CLASS ship IMPLEMENTATION.
      METHOD constructor.
        CALL METHOD super->constructor.
        max_speed = 30.
        me->name = name.
      ENDMETHOD.
      METHOD status~write.
        DATA id.
        id = me->get_id( ).
        WRITE: / name, 'is vessel', id,
                            'and has speed', speed.
      ENDMETHOD.
      METHOD drive.
        speed = speed + speed_up.
        IF speed > max_speed.
          max_speed = 0.
          speed = 0.
          RAISE EVENT emergency_call.
        ENDIF.
      ENDMETHOD.
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *       CLASS coast_guard DEFINITION
    *---------------------------------------------------------------------*
    *       Event handler definition                                      *
    *---------------------------------------------------------------------*
    CLASS coast_guard DEFINITION.
      PUBLIC SECTION.
        INTERFACES status.
        METHODS receive FOR EVENT emergency_call OF ship IMPORTING sender.
        ALIASES write FOR status~write.
      PRIVATE SECTION.
        DATA caller TYPE string.
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *       CLASS coast_guard IMPLEMENTATION
    *---------------------------------------------------------------------*
    *       Event handler implementation                                  *
    *---------------------------------------------------------------------*
    CLASS coast_guard IMPLEMENTATION.
      METHOD status~write.
        IF caller IS INITIAL.
          WRITE: / 'Coast guard received no call'.
        ELSE.
          WRITE: / 'Coast guard received a call from', caller.
        ENDIF.
      ENDMETHOD.
      METHOD receive.
        caller = sender->name.
        CALL METHOD write.
      ENDMETHOD.
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *       CLASS main DEFINITION
    *---------------------------------------------------------------------*
    *       Main class definition                                         *
    *---------------------------------------------------------------------*
    CLASS main DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS: start,
                       objects,
                       inheritance,
                       interfaces,
                       events.
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *      CLASS main IMPLEMENTATION
    *---------------------------------------------------------------------*
    *      Main class implementation                                      *
    *---------------------------------------------------------------------*
    CLASS main IMPLEMENTATION.
    
      METHOD start.
        CALL SELECTION-SCREEN 100 STARTING AT 10 3
                                    ENDING AT 42 7.
        IF sy-subrc NE 0.
          EXIT.
        ELSEIF button1 = 'X'.
          CALL METHOD objects.
        ELSEIF button2 = 'X'.
          CALL METHOD inheritance.
        ELSEIF button3 = 'X'.
          CALL METHOD interfaces.
        ELSEIF button4 = 'X'.
          CALL METHOD events.
        ENDIF.
      ENDMETHOD.
    
      METHOD objects.
        DATA: vessel1 TYPE REF TO vessel,
              vessel2 TYPE REF TO vessel.
        DATA: vessel_id  TYPE i.
        CREATE OBJECT: vessel1 TYPE vessel,
                       vessel2 TYPE vessel.
        CALL METHOD: vessel1->drive( 50 ),
                     vessel2->drive( 80 ).
        vessel_id = vessel1->get_id( ).
        WRITE: / 'Vessel ID is', vessel_id.
        vessel_id = vessel2->get_id( ).
        WRITE: / 'Vessel ID is', vessel_id.
      ENDMETHOD.
    
      METHOD inheritance.
        DATA: vessel TYPE REF TO vessel,
                ship TYPE REF TO ship.
        CREATE OBJECT ship TYPE ship EXPORTING name = 'Titanic'.
        CALL METHOD ship->drive( 20 ).
        MOVE ship TO vessel.
        CALL METHOD vessel->drive( 10 ).
        CALL METHOD ship->status~write.
      ENDMETHOD.
    
      METHOD interfaces.
        DATA: status_tab TYPE TABLE OF REF TO status,
              status TYPE REF TO status.
        DATA: ship TYPE REF TO ship,
              station TYPE REF TO coast_guard.
        CREATE OBJECT: ship EXPORTING name = 'Titanic'.
        APPEND ship TO status_tab.
        CREATE OBJECT station.
        APPEND station TO status_tab.
        LOOP AT status_tab INTO status.
          CALL METHOD status->write.
        ENDLOOP.
      ENDMETHOD.
    
      METHOD events.
        DATA: ship TYPE REF TO ship,
              station TYPE REF TO coast_guard.
        CREATE OBJECT: ship EXPORTING name = 'Titanic',
                       station.
        SET HANDLER station->receive FOR ship.
        DO 5 TIMES.
          CALL METHOD ship->drive( 10 ).
        ENDDO.
      ENDMETHOD.
    
    ENDCLASS.
    
    *---------------------------------------------------------------------*
    *      System event START-OF-SELECTION
    *---------------------------------------------------------------------*
    *      Triggered by the ABAP runtime environment automatically        *
    *---------------------------------------------------------------------*
    
    START-OF-SELECTION.
      CALL METHOD main=>start.
    
    

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.