Release 10.1A: OpenEdge Getting Started:
Object-oriented Programming

> ## Calling a super class method

> You can invoke the super class definition of a method using the `SUPER` system reference. Executing a super class method using the `SUPER` system reference within a subclass causes control to switch to the version of the method in the next higher super class that implements it, bypassing any classes that do not implement the method. The `SUPER` system reference is normally used to invoke the super class behavior for a method from within the subclass override of that method, in order to construct a chain of behavior. However, it can also be used to invoke any other method in a super class. Therefore, the method name to invoke is part of the syntax.

> This is the syntax to call a super class version of a method using the `SUPER` system reference:

> Syntax
>     [ return-variable = ]
>         SUPER:method-name ( [ parameter [ , parameter ] ... ] ) .

> Element descriptions for this syntax diagram follow:

> ``return-variable``

> The variable to hold the value returned by the method. If the method is defined with a `VOID` return type, the method does not return a value and the `SUPER` system reference does not use the `return-variable` assignment.

> ``method-name``

> The name of the method to call in the class hierarchy. The first method found, starting from the immediate super class of the current class and searching upward in the class hierarchy, is the method executed. It might be anywhere in the class hierarchy starting from the immediate super class.

> The method invoked can be any method name valid in the class hierarchy. It does not need to match the method name from where the call is made.

> `[ `parameter` [ , `parameter` ] ... ]`

> The parameters of the method. For more information on the syntax of `parameter`, see the “Parameter passing syntax” reference entry in OpenEdge Development: Progress 4GL Reference .

> From within a class, any invocation of an overridden method without the use of the `SUPER` system reference invokes the bottom-most subclass's implementation of the method. From within a class, any invocation of an overridden method with the use of the `SUPER` system reference invokes the super class's implementation of the method. There is no direct access to the super class's implementation of the overridden method from outside the class.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095