상세 컨텐츠

본문 제목

SAP ABAP UPCAST, DOWNCAST 개념과 ?=, =의 차이

ABAP

by Kiroc 2022. 12. 22. 15:26

본문

 

먼저 알아야 할 개념,

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 

 

ABAP Tip - Downcast (wildencast) 과 Upcasting

예전 SAPJOY에 있던 링크가 날아가서, 급하게 직접 만들어 봤습니다  

sapjoy.co.kr

 

* 내 맘대로 내용 요약

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 속성값을 가져올 수 있게 됨. 

관련글 더보기