Super instrução
Refere-se ao objeto base do objeto atual. Isso pode ser usado em dois contextos.
// Syntax 1: Calls the base-class constructor with arguments.
super(arguments)
// Syntax 2: Accesses a member of the base class.
super.member
Argumentos
arguments
Opcional na sintaxe 1. Uma delimitada por vírgulas a lista de argumentos para o construtor da classe base.member
Sintaxe 2 necessária. Membro da classe base para acessar.
Comentários
O super palavra-chave normalmente é usado em uma das duas situações. Você pode usá-lo explicitamente chamar o construtor de classe de base com um ou mais argumentos. Também pode usá-lo para acessar membros de classe base que foram substituídos pela classe atual.
Exemplo 1
No exemplo a seguir, super refere-se para o construtor da 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);
Este programa exibe a seguinte saída quando executado.
Base class constructor with no parameters.
This is the derived class constructor.
Base class constructor. i is 42
This is the derived class constructor.
Exemplo 2
No exemplo a seguir, super permite o acesso a um membro substituído da classe base.
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();
Este programa exibe a seguinte saída quando executado.
This is the derived class test.
This is the base class test.