Flashmx2004系列教程〈三〉ActionScript 2.0--接口

当在使用OOP时,除了继承比较重要之外,在就是接口了.就像JAVA和C#,ActionScript不提供多重继承(如一个子类可继承多个超类),这是因为如果使用不当在调试时就会象做了一场恶梦一样.会造成死循环和粘连不清的情况,在精心设计你的项目时,使用接口可以同样达到多重继承的效果,而不会出现上面说的那种很麻烦的情况.

一个接口就象是各类在执行方法时的一种协议,而通常在各个类未执行方法时是没有联系的.在接口中没有代码没有属性,只有方法,它的书写方式完全就象是在书写一个类一样,除了:

   1.它们都没有属性

   2.它们只有方法的标记,参数,类型和返回的类型

   3.在方法定义的结尾只有小括号而没有大括号

下面是一个可拖动的类名为Dragable的范例(通常在命名接口时通常以大写的"I"开头).

interface IDraggable {

public function startDrag():Void;

public function stopDrag():Void;

public function isDragging():Boolean;

}

如果要使用Interface需要使用关键字implement.如下面的例子,child类继承超类同时使用接口IDraggable.

class Child extends Parent implements IDraggable {

public function Child() {

// add Child constructor code

}

public function startDrag():Void {

 // implement the code for startDrag();

}

public function stopDrag():Void {

// implement the code for stopDrag();

}

public function isDragging():Boolean {

// implement the code for isDragging();

}

}

唯一在使用接口时注意的事情是,在类中应使用与接口中一样的方法,参数类型的定义,通过这种方式接口可以在两个不一样的程序员之间标准化代码,当一个已知的接口被类使用时,和序员只需知道接口以在不同的类中使用.