Polymorphism이 필요한 경우
Static 타입의 공유 없이 하나의 참조객체를 다른 참조객체로 Assign하고 싶을 때.
Assign 될 때, 참조객체자체가 바뀌는 게 아니라 Pointer만 움직이는 것.
이 때, 더 이상 Pointer가 가르키고 있지 않은 참조객체는 Garbage Collector에 의해 메모리 공간을 압수당한다.
Narrowing Cast
대상 참조 객체(parent)의 스태틱 타입의 components들이 소스 참조 객체(child)보다 same or generic 해야한다.
parent = child
즉, parent가 더 specific해졌으니깐 narrow casting인 것이다.
Widening Cast
대상 참조 객체(parent)의 스태틱 타입의 components들이 소스 참조 객체(child)보다 specific 해야한다.
대상 참조 객체(parent)의 다이나믹 타입의 components들이 소스 참조 객체(child)보다 same or generic 해야한다.
parent = grand_child
child ?= parent
즉, Narrowing 된 객체가 다시 상위 hierarchy로 Assign할 때 사용.
Interface
보통 상속은 Single Inheritance로서, 여러개의 Sub들은 하나의 Super를 가진다.
하지만 여러개의 Sub들이 여러개의 Super를 가진 것처럼 '척'해주는 역할을 원한다면, Interface를 사용하도록하자.
Interface는 정의부만 선언하고, 실현부는 해당 인터페이스를 사용하는 클래스 내에서 세부로직을 짜준다. 또한 클래스가 지원하는 모든 Components사용 가능하다.
인터페이스 사용 예제)
INTERFACE if_student
DATA id TYPE i.
METHOD meth1.
EVENTS evt1.
ENDINTERFACE.
CLASS cl_school DEFINITION.
PUBLIC SECTION.
INTERFACES if_student.
ALIASES m1 FOR if_studnet~meth1.
ENDCLASS.
CLASS cl_school IMPLEMENTATION.
METHOD m1.
ENDMETHOD.
ENDCLASS>
Events
트리거 역할을 하는 메서드 내에서 RAISE EVENT 되면, SET HANDLER를 통해 이벤트 핸들러 메서드가 반응하는 구조.
모든 이벤트 객체는 암묵적으로 Sender(이벤트가 정의되어진 객체의 참조위치)라는 파라미터를 import한다.
*SET HANDLER 용법
이벤트 인스턴스 한 건 : SET HANDLER event_handler_method FOR oref.
객체 복수 건 : SET HANDLER event_handler_method FOR ALL INSTANCES.
모르는 단어
contravene : (법을) 위반하다.
'SAP > Complete ABAP' 카테고리의 다른 글
9. Exception Handling (0) | 2023.02.22 |
---|---|
8.6 EXTENSIBLE MARKUP LANGUAGE(XML) (0) | 2023.02.22 |
8.4 Inheritance (1) | 2023.02.22 |
8.3 Encapsulation (0) | 2023.02.05 |
8.2 Principles of OOP (0) | 2023.02.05 |