super-Anweisung
Bezieht sich auf das Basisobjekt des aktuellen Objekts. Diese Anweisung kann in zwei Kontexten verwendet werden.
// Syntax 1: Calls the base-class constructor with arguments.
super(arguments)
// Syntax 2: Accesses a member of the base class.
super.member
Argumente
arguments
Optional in Syntax 1. Eine kommagetrennte Liste von Argumenten für den Basisklassenkonstruktor.member
In Syntax 2 erforderlich. Member der Basisklasse, auf den zugegriffen werden soll.
Hinweise
Das Schlüsselwort super wird i. d. R. in einer von zwei möglichen Situationen verwendet. Sie können damit explizit den Basisklassenkonstruktor mit einem oder mehreren Argumenten aufrufen. Sie können damit auch auf Basisklassenmember zugreifen, die von der aktuellen Klasse überschrieben wurden.
Beispiel 1
Im folgenden Beispiel bezieht sich super auf den Konstruktor der Basisklasse.
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);
Beim Ausführen dieses Programms wird Folgendes ausgegeben:
Base class constructor with no parameters.
This is the derived class constructor.
Base class constructor. i is 42
This is the derived class constructor.
Beispiel 2
Das folgende Beispiel veranschaulicht, wie mit super auf einen überschriebenen Member der Basisklasse zugegriffen wird.
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();
Beim Ausführen dieses Programms wird Folgendes ausgegeben:
This is the derived class test.
This is the base class test.