demonstrativo super
Refere-se ao objeto base do objeto corrente.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 lista delimitada por vírgulas dos argumentos para o construtor da classe base.member
Necessário na sintaxe 2.Membro da classe base para acesso.
Comentários
The Super palavra-chave normalmente é usada em uma das duas situações.Você pode usá-lo para chamar explicitamente o construtor da classe de base com um ou mais argumentos.Você também pode usá-lo para acessar membros de classe de base que foram substituídos pela classe corrente.
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.