接口作为数据类型

与类相似,接口也定义一种新的数据类型。任何实现某个接口的类都可被看作属于该接口所定义的类型。这有助于确定给定的对象是否实现了给定的接口。例如,考虑一下以下接口。

interface Movable {
  function moveUp();
  function moveDown();
}

现在,考虑一下实现 Movable 接口的 Box 类。

class Box implements Movable {
  var x_pos, y_pos;

  function moveUp() {
    // 方法定义
  }
  function moveDown() {
    // 方法定义
  }
}

然后,在另一个创建了 Box 类的实例的脚本中,您可以声明一个 Movable 类型的变量。

var newBox:Movable = new Box();

在 Flash Player 7 和更高版本中,可在运行时为表达式指定接口类型。如果该表达式是一个实现该接口的对象,或具有实现该接口的超类,则返回该对象。否则,将返回 null。这可用于判断特定对象是否实现了某个接口。

例如,以下代码首先检查对象名 someObject 是否实现了 Movable 接口,然后对该对象调用 moveUp() 方法。

if(Movable(someObject) != null) {
  someObject.moveUp();
}