super Statement

Refers to the base object of the current object. This can be used in two contexts.

// Syntax 1: Calls the base-class constructor with arguments.
super(arguments)

// Syntax 2: Accesses a member of the base class.
super.member

Arguments

  • arguments
    Optional in syntax 1. A comma delimited list of arguments for the base-class constructor.

  • member
    Required in syntax 2. Member of the base class to access.

Remarks

The super keyword is typically used in one of two situations. You can use it to explicitly call the base-class constructor with one or more arguments. You can also use it to access base-class members that have been overridden by the current class.

Example 1

In the following example, super refers to the constructor of the base class.

class baseClass {
   function baseClass() {
      print("Base class constructor with no parameters.");
   }
   function baseClass(i : int) {
      print("Base class constructor. i is "+i);
   }
}
class derivedClass extends baseClass {
   function derivedClass() {
      // The super constructor with no arguments is implicitly called here.
      print("This is the derived class constructor.");
   }
   function derivedClass(i : int) {
      super(i);
      print("This is the derived class constructor.");
   }
}

new derivedClass;
new derivedClass(42);

This program displays the following output when run.

Base class constructor with no parameters.
This is the derived class constructor.
Base class constructor. i is 42
This is the derived class constructor.

Example 2

In the following example, super allows access to an overridden member of the base class.

class baseClass {
   function test() {
      print("This is the base class test.");
   }
}
class derivedClass extends baseClass {
   function test() {
      print("This is the derived class test.");
      super.test(); // Call the base class test.
   }
}

var obj : derivedClass = new derivedClass;
obj.test();

This program displays the following output when run.

This is the derived class test.
This is the base class test.

Requirements

Version .NET

See Also

Reference

new Operator

this Statement