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