Определенного ключевого слова для перегрузки методов в ABAP не существует однако мы можем воспользоваться параметром OPTIONAL для для его имитации.
Во многих языках программирования можно перегружать методы, т.е. создавать альтернативную версию метода. Один и тот же метод будет иметь разную реализацию в зависимости от введенных в него параметров. Пример реализации на языке Delphi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
type TMyClass = class private public function Foo(x:integer): boolean; overload; function Foo(y:char): boolean; overload; end; implementation function TMyClass.MyFunc(x: integer): boolean; begin ... end; function TMyClass.MyFunc(y: char): boolean; begin ... end; |
В ABAP реализовать подобное поведение мы можем с помощью необязательных параметров метода и ключевого слова SUPPLIED для проверки ввода параметра при вызове метода.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
CLASS lcl_overload DEFINITION. PUBLIC SECTION. METHODS: foo IMPORTING X TYPE I OPTIONAL y TYPE P OPTIONAL Z TYPE C OPTIONAL. ENDCLASS. CLASS lcl_overload IMPLEMENTATION. METHOD foo. IF X IS SUPPLIED. ENDIF. IF y IS SUPPLIED. ENDIF. IF Z IS SUPPLIED. ENDIF. ENDMETHOD. ENDCLASS. |