Class-based objects can coexist in the same application and communicate with procedure-based objects (persistent procedures). You can use most ABL syntax within classes, and for the most part, you can use it in just the same way as in procedural code.
Class-based programming supports a simplified program structure that can be easier to maintain than procedural code and can facilitate reuse of code among objects. The run-time nature of procedural coding, on the other hand, generally supports a dynamic coding model more easily than does class-based programming. Because you can mix procedures and class-based objects in the same application, you can choose the model that best serves a given programming task in your application.
For more information on object-oriented extensions, see OpenEdge Getting Started: Object-oriented Programming in the Product Documentation section of the Progress Software Developer's Network Web site.