Как для объекта определить его класс

Есть несколько классов реализующих одинаковый интерфейс. Как определить принадлежность к тому или иному классу? Рассмотрим на примере.

Интерфейс lif_professional содержит переменную mv_expirience, содержащую показатель опыта и метод do_work. Два класса lcl_abaper и lcl_consultant реализуют данный интерфейс.

Создадим класс lcl_test со статическим методом test, который получает на вход объект типа ссылка на интерфейс lif_professional. Определим класс объекта.

Определение класса lcl_test:

В основном блоке программы объявляем переменную типа ссылка на интерфейс lif_professional и создаем ее как объект класса lcl_abaper.

Способ 1. CASTING

Результат выполнения:

Способ 2. С помощью класса cl_abap_classdescr.

Результат выполнения

Способ 3. С помощью нового оператора IS INSTANCE OF

Результат выполнения

Способ 4. С помощью нового оператора CASE TYPE OF & WHEN TYPE

Результат выполнения

Добавить комментарий

Обязательные поля отмечены *. Ваш email не будет отображаться.