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.

Requisitos

Versão.NET

Consulte também

Referência

Operador New

Esta instrução.