SUPER statement
- Last Updated: December 13, 2018
- 2 minute read
- OpenEdge
- Version 13.0
- Documentation
Syntax
In
order to enforce the construction of an object hierarchy from the
top of the object hierarchy to the bottom, the very first action
of the instantiating subclass constructor (as invoked by the NEW function)
must either be an implicit call to the default constructor of the
immediate super class or an explicit call to a constructor of the
immediate super class using the SUPER statement.
If all super class constructors have parameters (that is, there
is no default super class constructor), the first executable statement
in the instantiating subclass constructor must be either an explicit
call to a super class constructor using the SUPER statement
or an explicit call to an overloaded constructor using the THIS-OBJECT statement
whose first statement explicitly or implicitly invokes a super class
constructor. If the super class has no constructors defined or defines
a constructor with no parameters (that is, it has a default constructor),
an explicit call to a super class constructor is optional. Also,
with a default super class constructor, if a subclass does not need
to execute any statements of its own to initialize work when the subclass
is instantiated, the subclass does not need to define a constructor.
The NEW function automatically invokes the default constructor
for the instantiated subclass when the NEW function
is specified with no parameters, and the AVM automatically calls
the default super class constructor as the initial action of the
instantiating subclass constructor.
This is the syntax to
invoke the immediate super class constructor using the SUPER statement:
|
Element description for this syntax diagram follow:
- [ parameter [ , parameter]...]
- The parameters, if any, passed to the specified super class constructor. For more information on the syntax of parameter, see the Parameter passing syntax reference entry in ABL Reference.
NO-ERROR on the SUPER statement.
Any ERROR condition raised during execution of
a constructor can be handled only by the statement that instantiates
a class with the NEW function. For more information,
see Raise and handle error conditions.The
syntax for the SUPER statement appears similar
to the syntax for the SUPER built-in function,
used to invoke user-defined functions in a super procedure. However,
unlike the SUPER built-in function, which you must
invoke inside an expression in a procedure, you can only invoke
the SUPER statement as the first statement in a
subclass constructor.