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

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

Пример наследования

Рассмотрим простой абстрактный пример, чтобы получить общее представление о том, как работает наследование (примеры практического применения наследования будут рассмотрены после того, как мы познакомимся с базовым синтаксисом). Существует класс А с одним методом экземпляра m ( ) и одной переменной экземпляра v:

public class А { public var v = 10;

public function m ( ) { trace(«Method m( ) was called»);

}

}

Как обычно, мы можем создать экземпляр класса А, вызвать метод m ( ) и обратиться к переменной v следующим образом:

var alnstance = new A( );

alnstance. m( ); // Выводит: Method m( ) was called trace(alnstance. v); // Выводит: 10

Пока ничего нового. Теперь добавим второй класс В, который наследует метод m ( ) и переменную v класса А. Для создания отношения наследования между классами А и В используется ключевое слово extends:

public class В extends А { // Никакие методы и переменные не определены

}

Поскольку класс В расширяет (унаследован от) класс А, экземпляры класса В могут автоматически использовать метод m ( ) и переменную v (даже несмотря на то, что в самом классе В этот метод и переменная не определены):

var bInstance:B = new В( );

blnstance. m( ); // Выводит: Method m( ) was called trace(blnstance. v); // Выводит: 10

При выполнении инструкции blnstance. m( ) среда Flash проверяет, определен ли метод m ( ) в классе В. Не найдя метода m ( ) в классе В, Flash продолжает его поиск в суперклассе класса В (то есть в том классе, который расширяется классом В). Среда выполнения находит метод m ( ) в классе А и вызывает его над переменной blnstance.

Обратите внимание, что в самом классе В не определены никакие методы или переменные. На практике определение класса, не добавляющего ничего нового в расширяемый класс, не имеет большого смысла, поэтому, как правило, это делать не рекомендуется. В обычном же случае, помимо методов и переменных, унаследованных от класса А, класс В определял бы свои собственные методы и/или переменные. Иными словами, подкласс на самом деле представляет собой расширенный набор возможностей, доступных в его суперклассе. Подкласс обладает всем, что доступно в суперклассе, а также дополнительными возможностями. Рассмотрим новую версию класса В, унаследовавшего метод m ( ) и переменную v от класса А и определяющего свой собственный метод п ( ):

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

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

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

Полезные ссылки
Случайные записи
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 124
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 066
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 105
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 022
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.154
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.54
  • 28.02.2011">Руководство по actionscript. часть 5, стр. 140
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 057
  • 11.03.2011">Руководство по actionscript. часть 4, стр. 010
  • 11.03.2011">Руководство по actionscript. часть 4, стр. 017
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 038
  • 14.07.2011">Продвижение неизбежно
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 021
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 076
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.17
Опрос

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

View Results

Loading ... Loading ...