Отсутствие поддержки абстрактных классов 

и методов  ActionScript 

 

 

Во многих объектно-ориентированных проектах программ требуется  

использовать так называемые абстрактные классы. Абстрактным считается любой класс, 

в котором определены один или несколько абстрактных методов. Это методы, 

которые имеют имя, параметры и возвращаемый тип, но не имеют реализации 

(то есть не имеют тела метода). Класс, желающий расширить абстрактный класс, 

должен либо реализовать все абстрактные методы суперкласса, либо сам  

являться абстрактным классом; в противном случае на этапе компиляции произойдет 

ошибка. Подклассы абстрактного класса фактически обещают предоставить  

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

классом только в теории. 

Абстрактные классы являются широко распространенной, важной частью  

проектов, в которых применяется полиморфизм. Например, ранее при обсуждении 

полиморфизма мы рассмотрели класс Shape и его подклассы Circle, Rectangle 

и Triangle. В обычной ситуации метод draw ( ) класса Shape был бы объявлен 

абстрактным методом, гарантируя, что: 

Q каждый подкласс класса Shape предоставляет средства для его отображения 

на экране; 

□ внешний код может безопасно вызывать метод draw ( ) над любым  

подклассом класса Shape (поскольку компилятор не позволит классу расширить класс 

Shape, не реализовав метод draw ( ) ). 

К сожалению, язык ActionScript не поддерживает абстрактные классы и  

абстрактные методы. Объявление абстрактного метода в языке ActionScript заменяется 

простым описанием метода, который не содержит кода в своем теле, и указанием 

в документации, что этот метод является абстрактным. Позаботиться о том, чтобы 

все подклассы предполагаемого абстрактного класса реализовали  

соответствующие методы, должен программист (а не компилятор). 

В большинстве случаев для реализации конкретной объектно-ориентированной 

архитектуры вместо абстрактных классов могут быть использованы интерфейсы 

языка ActionScript. О том, что такое интерфейсы, вы прочтете в гл. 9. 

Мы рассмотрели понятие наследования. В конце этой главы применим полученные 

знания к программе по созданию виртуального зоопарка. 




BACK NEXT

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