You can extend a .NET class with an ABL class much as you can extend another ABL class—by inheriting a .NET class or by implementing a .NET interface in the ABL class definition. As such, an
ABL-derived .NET class is an ABL user-defined class that inherits from a .NET class. An
ABL-extended .NET class is an ABL user-defined class that either inherits from a .NET class, implements a .NET interface, or both. Thus, the possible set of ABL-extended .NET classes represent a proper super set of the possible set of ABL-derived .NET classes. No matter how you define an ABL-extended .NET class, any instance of that class is accessible from both the ABL context and the .NET context of a single ABL session (see
GUIfor .NET run-time architecture).
The following sections describe how to define and use ABL-extended .NET classes, both by inheriting .NET classes and implementing .NET interfaces: