Руководство по actionscript. часть 1, стр. 104
Public class В extends А { public function n ( ) { trace(«Method n( ) was called»);
}
}
Теперь экземпляры класса В могут использовать все методы и переменные не только класса В, но и его суперкласса А:
var blnstance = new В( );
// Вызов унаследованного метода, определенного в классе А blnstance. m( ); // Выводит: Method m( ) was called // Вызов метода, определенного в классе В blnstance. п( ); // Выводит: Method n( ) was called // Обращение к унаследованной переменной trace(blnstance. v); // Выводит: 10
В данном случае говорят, что класс В специализирует класс А. Класс В использует возможности класса А в качестве своей основы, добавляя свои собственные возможности или даже — как мы увидим далее — перекрывая возможности класса А измененными для собственных нужд версиями. Таким образом, в отношении наследования между двумя классами расширяемый класс (в нашем случае А) называется базовым, а расширяющий класс (в нашем случае В) — производным. Иногда для обозначения базового и производного классов также используются понятия «предок» и «потомок» соответственно.
Наследование может (а зачастую так и происходит) включать больше чем два класса. Например, даже несмотря на то, что класс В унаследован от класса А, класс В может стать базовым для другого класса. Следующий код демонстрирует третий класс С, который расширяет класс В, а также определяет новый метод о ( ). Класс С может использовать все методы и переменные, определенные в нем самом и во всех его предках, то есть в его суперклассе (В) и суперклассе суперкласса (А).
public class С extends В { public function о ( ) { trace(«Method o( ) was called»);
}
}
// Использование:
var clnstance = new C( );
// Вызов метода, унаследованного от класса А
clnstance. m( ); // Выводит: Method m( ) was called
// Вызов метода, унаследованного от класса В
clnstance. п( ); // Выводит: Method n( ) was called
// Вызов метода, определенного в классе С
clnstance. о( ); // Выводит: Method о( ) was called
// Обращение к переменной, унаследованной от класса А.
trace(clnstance. v); // Выводит: 10
Более того, каждый суперкласс может иметь любое количество подклассов (однако у суперкласса нет никакой возможности узнать, какие подклассы расширяют его возможности). Следующий код добавляет в наш пример четвертый класс D. Как и В, класс D наследуется непосредственно от А. Класс D может использовать методы и переменные, определенные в нем самом и в его суперклассе А.