Istruzione super
Aggiornamento: novembre 2007
Questa istruzione fa riferimento all'oggetto base dell'oggetto corrente e può essere utilizzata in due contesti.
// Syntax 1: Calls the base-class constructor with arguments.
super(arguments)
// Syntax 2: Accesses a member of the base class.
super.member
Argomenti
arguments
Facoltativo nella sintassi 1. Elenco delimitato da virgole di argomenti per il costruttore della classe base.member
Obbligatorio nella sintassi 2. Membro della classe base a cui si desidera accedere.
Note
La parola chiave super viene in genere utilizzata in una delle due seguenti situazioni: per chiamare in modo esplicito il costruttore della classe base mediante uno o più argomenti oppure per accedere ai membri della classe base sottoposti a override dalla classe corrente.
Esempio 1
Nell'esempio seguente, super si riferisce al costruttore della classe base.
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);
All'esecuzione di questo programma viene visualizzato il seguente output:
Base class constructor with no parameters.
This is the derived class constructor.
Base class constructor. i is 42
This is the derived class constructor.
Esempio 2
Nell'esempio seguente, super consente di accedere a un membro della classe base sottoposto a override.
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();
All'esecuzione di questo programma viene visualizzato il seguente output:
This is the derived class test.
This is the base class test.