때때로, 상속 트리(상속 관례 구성)에서, 더 이상 클래스간의 상속을 확장시키고 싶지 않을 수 있습니다. 이러한 시나리오에서, 클래스를 Class Final로 만든다면, 더 이상 상속이 되지 않게 할 수 있습니다.
Final Class로 정의하려면, CLASS DEFINITION 구문에 FINAL 이라는 addition만 붙여주면 됩니다.
CLASS cl_final DEFINITION FINAL.
...
ENDCLASS.
Global 클래스(SE24에서 관리되는 전역 클래스)에서 Class를 Final로 정의하면되는데, 이는 아래 그림과 같이 Properties 탭에서 가능합니다.
Methods들도 또한 final로 정의가 가능한데, Final Method로 정의를 해놓으면 Subclass에서 더 이상 재정의되지 않습니다.
예를 들어, 클래스는 상속이 되지만 Method는 이미 기능이 완벽하여 더 이상 확장 및 재수정을 할 필요가 없을 때 Final로 정의해 놓습니다. 마찬가지로 Methods라는 구문에 FINAL이라는 addition을 붙이면 됩니다.
CLASS cl_parent DEFINITION.
PUBLIC SECTION.
METHODS student FINAL.
ENDCLASS.
전역 클래스(Global Class)의 Method를 Final로 설정하려면 SE24에서 Method Tab에서 Detail View를 선택하여 Final Check Box를 선택하면 됩니다.
반응형
'ABAP 프로그래밍 개념 > Object-Oriented ABAP' 카테고리의 다른 글
ABAP OOP : Inheritance(상속) PART6 : Refactoring Assistant (0) | 2023.01.15 |
---|---|
ABAP OOP : Inheritance(상속) PART5 : Compositions (0) | 2023.01.15 |
ABAP OOP : Inheritance(상속) PART3 : Abstract Classes and Methods(추상 클래스 & 메소드) (0) | 2023.01.11 |
ABAP OOP : Inheritance(상속) PART2 : 상속의 정의(Define) (0) | 2023.01.10 |
ABAP OOP : Inheritance(상속) PART1 (0) | 2023.01.10 |