If a class has static members, ABL creates a default static constructor for the class, if you do not define one, that initializes any static data members and properties of the class with their initial values. If you do define a static constructor, it can take no parameters, and like any static method, it cannot access instance members of the class. As a result, it also cannot execute the
SUPER or
THIS-OBJECT statements, which invoke only instance constructors. A typical reason to define a static constructor is to complete the initialization of static data members, such as ProDataSets, that require executable statements to complete their initialization. For more information on static constructor execution, see
Initializing and deleting static members.