아무래도 코드를 보시면서 이해하시는게 좋을 거 같네요
간단한 예제프로그램 보시고 이해하세요.
개념은 답변하신 분이 잘 말씀해주셔서 더 이상 말씀드릴 게 없는거 같구요.
궁금하신 사항은 제가 원문에다가 답글 달아 드렸습니다.
참고하세요.
*&---------------------------------------------------------------------*
*& 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
형태로 출력됩니다.
백문이 불여일견이라 한번 위의 코딩대로 한번
이해해보세요.
간단한 예제프로그램 보시고 이해하세요.
개념은 답변하신 분이 잘 말씀해주셔서 더 이상 말씀드릴 게 없는거 같구요.
궁금하신 사항은 제가 원문에다가 답글 달아 드렸습니다.
참고하세요.
*&---------------------------------------------------------------------*
*& 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
형태로 출력됩니다.
백문이 불여일견이라 한번 위의 코딩대로 한번
이해해보세요.
댓글 5
-
홍성종
2007.02.06 13:32
-
구본찬
2007.02.06 15:08
예 맞습니다.
METHOD write_status.
WRITE / 'Plane:'.
CALL METHOD super->write_status.
WRITE: / 'Altitude:', altitude.
ENDMETHOD.
이미 재정의된 메소드 안에서 부모 클래스의 메소드를 호출한거지요.
-
홍성종
2007.02.06 15:11
아~~~이제 이해가 가는거 같습니다..
객체라는 부분도 어려운데 이걸 ABAP에 적용하면서 이해할려구 하니깐 더 어렵게 느껴지는거 같습니다..
앞으로도 이런 조언 부탁드립니다~~ -
sincere
2008.09.05 10:40
초급도 이해가 안되는.. -0-
-
해창이아빠
2009.02.10 04:18
좋은 정보 감사합니다
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
66 | 질문이 있습니다. [1] | 로미오 | 2007.02.09 | 2294 |
65 | [re] 질문이 있습니다. [4] | sapjoy | 2007.02.09 | 2617 |
64 | 오늘도 열심히.. [9] | 홍성종 | 2007.02.08 | 2694 |
63 | Badis에 대해서요~ [1] | 홍성종 | 2007.02.07 | 2684 |
62 | [re] BTE [6] | sapjoy | 2007.02.07 | 3085 |
61 | [re] Badis에 대해서요~ [4] | 구본찬 | 2007.02.07 | 2911 |
60 | [re] Badis에 대해서요~ [1] | sapjoy | 2007.02.07 | 3418 |
59 | 오늘도 역시;;; | 홍성종 | 2007.02.07 | 2917 |
58 | [re] SAP SHOW 예제 [1] | sapjoy | 2007.02.07 | 2683 |
57 | [re] SAP SHOW 예제 [6] | sapjoy | 2007.02.07 | 2738 |
56 | <b>[완료]</b>SQL문의 성능 향상 질문. [16] | 초보보초보 | 2007.02.07 | 3322 |
55 | 이번에는 certi관련해서;; | 홍성종 | 2007.02.06 | 2711 |
54 | [re] 이번에는 certi관련해서;; [2] | sapjoy | 2007.02.06 | 2759 |
53 | <b>[완료]</b>질문입니다~~ [2] | 홍성종 | 2007.02.05 | 2673 |
» | [re] 질문입니다~~ [5] | 구본찬 | 2007.02.06 | 2467 |
51 | [re] 질문입니다~~ [4] | sapjoy | 2007.02.05 | 2777 |
50 | <b>[완료]</b>일본 SAP [3] | 아밥 | 2007.02.05 | 3013 |
49 | 운영자님~ | 홍성종 | 2007.02.05 | 2932 |
48 | <b>[완료]</b>[re] 운영자님~ [5] | sapjoy | 2007.02.05 | 2750 |
47 | 운영자님~abap oop에대해서 질문입니다~ | 홍성종 | 2007.02.05 | 3038 |
역시 백문이 불여일타라고 해서 한번 쳐보니깐 로직이 이해가 됩니다~~^^ㅎㅎ
그런데요 부모클래스에서 write_status는 1이나오는데
plane의 자식클래스에서 super->wirte_status 즉 부모의 write_status를 이용해서 값을 출력하라는게 아닌가요??
왜 아무런 값이 안나오는걸까요?? 혹시 부모클래스에서 write_status는 speed라는 data를 이용하여 값을 출력해 주는
method일뿐이라서 그런건가요??
그런데 ship의 자식클래스에서는 그냥 상속받아서....
아! Redefine이라는게 부모클래스에서는 wirte문에서 Speed라고 했고 ship자식클래스는 고대로 상속받아서
write문에서 Ship speed라고 문장을 고쳤는데 이것을 말하는건가요??ㅎㅎ
감사합니다~~