메뉴 건너뛰기

SAP 한국 커뮤니티

[re] 질문입니다~~

구본찬 2007.02.06 12:24 조회 수 : 2448 추천:138

아무래도 코드를 보시면서 이해하시는게 좋을 거 같네요
간단한 예제프로그램 보시고 이해하세요.
개념은 답변하신 분이 잘 말씀해주셔서 더 이상 말씀드릴 게 없는거 같구요.
궁금하신 사항은 제가 원문에다가 답글 달아 드렸습니다.
참고하세요.

*&---------------------------------------------------------------------*
*& Report  ZLER9996                                                    *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZLER9996                                                    .

* Class Declarations

CLASS vehicle DEFINITION INHERITING FROM object.
  PUBLIC SECTION.
    METHODS: accelerate,
             write_status.
  PROTECTED SECTION.
    DATA speed TYPE i.
ENDCLASS.

CLASS plane DEFINITION INHERITING FROM vehicle.
  PUBLIC SECTION.
    METHODS: rise,
             write_status REDEFINITION.
  PROTECTED SECTION.
    DATA altitude TYPE i.
ENDCLASS.

CLASS ship DEFINITION INHERITING FROM vehicle.
  PUBLIC SECTION.
    METHODS write_status REDEFINITION.
ENDCLASS.

* Class Implementations

CLASS vehicle IMPLEMENTATION.
  METHOD accelerate.
    speed = speed + 1.
  ENDMETHOD.
  METHOD write_status.
    WRITE: / 'Speed:', speed.
  ENDMETHOD.
ENDCLASS.

CLASS plane IMPLEMENTATION.
  METHOD rise.
    altitude = altitude + 1.
  ENDMETHOD.
  METHOD write_status.
    WRITE / 'Plane:'.
    CALL METHOD super->write_status.
    WRITE: / 'Altitude:', altitude.
  ENDMETHOD.
ENDCLASS.

CLASS ship IMPLEMENTATION.
  METHOD write_status.
    WRITE: / 'Ship speed:', speed.
  ENDMETHOD.
ENDCLASS.

* Global Data

DATA: plane_ref TYPE REF TO plane,
      ship_ref TYPE REF TO ship.

* Classical Processing Blocks

START-OF-SELECTION.

  CREATE OBJECT: plane_ref,
                 ship_ref.

  CALL METHOD: plane_ref->accelerate,
               plane_ref->rise,
               plane_ref->write_status,
               ship_ref->accelerate,
               ship_ref->write_status.

결과 값은 아시는대로
Plane:
Speed:          1
Altitude:          1
Ship speed:          1
형태로 출력됩니다.

백문이 불여일견이라 한번 위의 코딩대로 한번
이해해보세요.