Поделиться через


Оператор super

Ссылается на базовый объект текущего объекта. Этот оператор можно использовать в двух контекстах.

// Syntax 1: Calls the base-class constructor with arguments.
super(arguments)

// Syntax 2: Accesses a member of the base class.
super.member

Аргументы

  • arguments
    Необязательный в синтаксисе 1. Список разделенных запятыми аргументов для конструктора базового класса.

  • member
    Обязательный в синтаксисе 2. Член базового класса, к которому требуется получить доступ.

Заметки

Ключевое слово super обычно используется в одной из двух ситуаций. Его можно использовать явно для вызова конструктора базового класса с одним или несколькими аргументами. Его также можно использовать для доступа к членам базового класса, которые были переопределены текущим классом.

Пример 1

В следующем примере оператор super ссылается на конструктор базового класса.

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);

При выполнении этой программы выводится следующий текст:

Base class constructor with no parameters.
This is the derived class constructor.
Base class constructor. i is 42
This is the derived class constructor.

Пример 2

В следующем примере оператор super позволяет получить к переопределенным членам базового класса.

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();

При выполнении этой программы выводится следующий текст:

This is the derived class test.
This is the base class test.

Требования

Версия .NET

См. также

Ссылки

Оператор new

Оператор this