A persistent procedure can contain executable statements in its main block and can define parameters. Classes support constructors to provide the same functionality. The equivalent of data members for persistent procedures are variables and other data elements defined in the main block. The equivalent of methods for persistent procedures are internal procedures and user-defined functions. The closest equivalent of properties for persistent procedures are user-defined functions and internal procedures that encapsulate access to data elements defined in the main body of the persistent procedure. There is no equivalent in a persistent procedure for an abstract member of a class.