2010-09-05 1 views
1

Мне было интересно узнать о различиях между абстрактом и интерфейсом в ActionScript 3 и когда их использовать. Я искал google, но все еще не мог понять их .... Я надеюсь, что кто-то здесь может дать мне несколько советов ... Спасибо много!!!Actionscript 3: В чем разница между интерфейсом и абстрактным и когда использовать их??

+0

Вы имеете в виду разницу между абстрактным классом и интерфейсом? –

+0

Да ... для AS3 ... Спасибо за помощь – FlyingCat

ответ

4

Разница заключается в том, что интерфейс действует ActionScript, но аннотация не ...

Теперь на других языках вы можете пометить метод или класс как абстрактный. Это похоже на интерфейс, в этом абстрактном означает, что он не имеет реализации (для метода) или не может быть создан (для класса).

Таким образом, если класс является абстрактным, это означает, что вы не можете создать экземпляр с нуля (с new), но вам нужно расширить класс для доступа к его функциям.

Абстрактный метод во многом похож на метод, определенный в интерфейсе. Когда вы расширяете класс, который объявляет абстрактный метод, вы должны предоставить реализацию, которая имеет одну и ту же подпись, или ваш код не будет компилироваться. Абстрактный метод автоматически отрисовки класса, потому что в противном случае вы могли бы создать экземпляр объекта, у которого есть нереализованный метод.

С абстрактным классом у вас есть некоторые функции интерфейса (т. Е. Вы определяете метод, конкретная реализация которого должна быть предоставлена), но вы также можете использовать другие методы, которые реализованы и готовы к использованию.

(Это общее объяснение, может быть, это немного по-другому на языке X, но я думаю, что это дает вам основную идею)

+1

Да. @Jerry, например, у вас может быть класс Shape (не путать с реальным классом Shape в AS3). Этот класс был бы хорошим кандидатом для абстрактного класса, поскольку он имел бы функции и свойства, общие для всех его подклассов (например, Circle, Square). Такие вещи, как цвет, положение, нереализованная функция розыгрыша. И так как создание самой формы не имеет смысла, вы бы отметили ее как абстрактную, поэтому ее нельзя было инициировать напрямую, а скорее только дочерним элементом, например Rectangle и т. Д., То есть если AS3 поддерживает абстрактные классы. – Allan

+0

очень приятно ..... thx guys .. – FlyingCat

Смежные вопросы