Because classes in ABL are strongly-typed, ABL can check at compile-time if an object reference is valid. However, you can only reference an object of a compatible type. You can allow a single variable or a temp-table field to hold a reference to a variety of types using an object reference of an appropriate super class type. If you define a variable or a temp-table field as the class type
Progress.Lang.Object, you can use it to store an object reference for any class type. If you want to access public data members, properties, methods, or events defined for the object as a subclass of the specified class type, you can cast the object reference to the type of that subclass (or lower in the class hierarchy). Otherwise, ABL catches any attempt to reference this subclass functionality as a compiler error. For more information on casting, see
Object reference assignment and casting. In addition, ABL automatically garbage collects any class-based objects that you create; it is not necessary to explicitly delete them.
If you need to keep track of a collection of object references, for example for all the class instances running in a session, you can create a temp-table with a field of type
Progress.Lang.Object. You can then store any object reference in that field. For more information on defining and using temp-table fields to reference class-based objects, see
Defining an object reference field in a temp-table.