Во-первых, просто погуглите заголовок этого поста, и Вы - золотой.
Во-вторых: Я не уверен, правильно ли я вас понимаю, Вы хотите знать о таких конструкциях как:
DATA lo_ref_var TYPE REF TO zcl_my_class.
А под динамическими типами Вы подразумеваете в ABAP 7.4 / 7.5 (например, DATA (lv_var) = 123)?
Если да, я постараюсь дать Вам общее представление: переменная-ссылкаэто просто переменная, которая «готова стать» объектом.Например, если вы возьмете это:
DATA lo_ref_var TYPE REF TO zcl_my_class.
CREATE OBJECT lo_ref_var.
. Если предположить, что конструктору не нужны переменные, вы получите экземпляр класса zcl_my_class со всеми его атрибутами и методами.Также, если у вас есть абстрактный класс zcl_abs_class в качестве суперкласса, а zcl_sub_class1 и zcl_sub_class2 в качестве его неабстрактного подкласса, чем:ссылочная переменная суперкласса, поскольку подкласс 'наследуется от zcl_abs_class.Более того, покопайтесь.
Динамические типы: На самом деле это очень просто, все, что вам нужно запомнить, это то, что переменная должна иметь тип при динамическом создании.Так, например:
DATA(lv_text) = text-000.
DATA(lv_int) = 1.
Строка с lv_text не будет работать (не будет компилироваться), поскольку text-000 не имеет точного типа.Вторая строка с другой стороны будет принимать тип I. Если вы хотите решить, какой тип выбрать, вы можете сделать это, написав:
DATA(lv_bukrs) = CONV bukrs( '1234' ).
Вы даже можете использовать тип, который уже существующая переменнаяимеет:
DATA(lv_bukrs2) = CONV #( lv_bukrs ).
, так как "#" означает "использовать переменную внутри скобок".
Надеюсь, это поможет Вам начать:)