Оператор 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.