본문 바로가기

ABAP 프로그래밍 개념/Object-Oriented ABAP

ABAP OOP : Inheritance(상속) PART4 : Final Classes and Methods

때때로, 상속 트리(상속 관례 구성)에서, 더 이상 클래스간의 상속을 확장시키고 싶지 않을 수 있습니다. 이러한 시나리오에서, 클래스를 Class Final로 만든다면, 더 이상 상속이 되지 않게 할 수 있습니다.

Final Class로 정의하려면, CLASS DEFINITION 구문에 FINAL 이라는 addition만 붙여주면 됩니다.

CLASS cl_final DEFINITION FINAL.
...
ENDCLASS.

 Global 클래스(SE24에서 관리되는 전역 클래스)에서 Class를 Final로 정의하면되는데, 이는 아래 그림과 같이 Properties 탭에서 가능합니다.

SE24 : Class Final로 만들기

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를 선택하면 됩니다.

SE24 : METHOD Final로 만들기

 

반응형