먼저 알아야 할 개념,
UPCAST와 DOWNCAST
1. UPCAST
Narrowing Cast라고도 한다. 자식 클래스의 component를 부모 클래스의 component로 가져올 때 사용
=는 UPCAST 상황에서 사용된다.
부모 클래스 = 자식 클래스의 경우에 사용.
* 예시
lo_vehicle이 부모 클래스고 lo_car가 자식 클래스라고 가정.
lo_vehicle = lo_car.
2. DOWNCAST
Widening Cast라고도 한다. 부모 클래스의 component를 자식 클래스의 component로 가져올 때 사용
?=는 DOWNCAST 상황에 사용된다.
자식 클래스 ?= 부모 클래스의 경우에 사용.
예시
lo_car ?= lo_vehicle.
실제 CLASS로 예시를 만든 분이 있어 링크 첨부
http://sapjoy.co.kr/index.php?mid=abaptip&page=2&document_srl=139929&m=0
* 내 맘대로 내용 요약
CLASS A - 부모 (EX. CL_EDOC_SOURCE. GET_DATA메소드가 PROTECT으로(빈값) 구현됨.)
CLASS B - 자식 (EX. CL_EDOC_SOURCE_SD. GET_DATA메소드가 상속되어 있음.)
CLASS C - 손주(?)(EX. CL_EDOC_SOURCE_SD_INVOICE. GET_DATA메소드가 PUBLIC으로 구현됨.)
라고 했을때
lo_class_C ?= lo_class_A. =>DOWNCASTING으로 CLASS A의 속성을 C에서도 사용가능하게 복사.
lo_class_C->get_data(
IMPORTING
ES_DATA = LT_DATA ).
=> LT_DATA에 CLASS A가 가진 PROTECTED 속성값을 가져올 수 있게 됨.
ABAP - 이벤트 정리 및 예시 (0) | 2023.02.22 |
---|---|
SAP ABAP - ALV 수정 사항이 반영되지 않을 때 (0) | 2023.02.20 |
SAP ABAP - HANA SQL 사용 + SQL 성능 비교 (0) | 2022.12.06 |
SAP ABAP - CALL DATABASE PROCEDURE 예시 (0) | 2022.12.05 |
ABAP 첨부 파일 업로드 - 기초 1(스탠더드 기능) (0) | 2022.07.11 |