Руководство по actionscript. часть 1, стр. 108

Public class ReadOnlyRectangle extends Rectangle { // Следующее определение фактически блокирует метод setSizeC ) // для экземляров класса ReadOnlyRectangle. override public function setSize (newW, newH) { // Никаких действий

}

}

Методы-конструкторы в подклассах

Теперь, когда мы рассмотрели поведение методов и переменных экземпляра относительно наследования, обратим наше внимание на методы-конструкторы.

Вспомним, что метод-конструктор инициализирует экземпляры класса следующими способами:

? вызывая методы, которые выполняют задачи настройки;

? присваивая значения переменным созданного объекта.

Когда происходит расширение класса, подкласс может определять собственный метод-конструктор. На конструктор подкласса возлагаются следующие функции:

? выполнять задачи настройки, относящиеся к подклассу;

? присваивать значения переменным, описанным в подклассе;

? вызывать метод-конструктор подкласса (иногда называемый суперконструктором).

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

Запрещение использования ключевого слова super после того, как произошло обращение к любой переменной или методу экземпляра, имеет следующие преимущества:

? исключается вызов методов над объектом, который еще не был проинициали-зирован;

? устраняется доступ к переменным объекта, который еще не был проинициали-зирован;

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

Не путайте две разновидности оператора super. Первая разновидность — super() — вызывает метод-конструктор суперкласса. Вторая разновидность — super. имяМетода() — вызывает метод суперкласса. Использование первой разновидности допустимо только в методе-конструкторе. Вторая разновидность может многократно применяться в любом месте метода-конструктора или метода экземпляра.

Рассмотрим применение оператора super для вызова метода-конструктора суперкласса в простейшем случае. Следующий код описывает класс А с пустым методом-конструктором:

public class А { public function А ( ) { }

}

Следующий код описывает класс В, который расширяет класс А. Внутри метода-конструктора класса В мы используем оператор super для вызова метода-конструктора класса А:

public class В extends А { // Конструктор подкласса public function В ( ) {

// Вызов метода-конструктора суперкласса

super( );

}

}

С точки зрения функциональности следующие описания двух методов-конструкторов являются синонимами. В первом случае метод-конструктор суперкласса вызывается явно; во втором случае среда выполнения Flash вызывает метод-конструктор суперкласса неявно.

public function В ( ) { // Явный вызов метода-конструктора суперкласса super( );

}

public function В ( ) { // Вызов конструктора отсутствует. // Среда Flash вызовет конструктор автоматически

}

Если в подклассе метод-конструктор не определен вообще, то компилятор языка ActionScript автоматически создаст метод-конструктор и добавит в него одну инструкцию — вызов оператора super. Следующие два описания класса В функционально являются идентичными. Первое описание в явном виде представляет то, что для второго описания автоматически создает компилятор:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.29
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 089
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.25
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 140
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 106
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.52
  • 23.05.2012">Machinima привлекла инвестиций на $35 миллионов благодаря Google
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.32
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 122
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 134
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.157
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 055
  • 13.11.2012">Китай снял блокаду сервисов Google
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.86
  • 05.08.2011">МФУ от Hewlett-Packard – качество и надежность
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...