WEB开发网
开发学院图形图像Flash Think in ActionScript 3.0Ⅱ 阅读

Think in ActionScript 3.0Ⅱ

 2009-05-30 12:08:03 来源:WEB开发网   
核心提示: 其实这些结论大家通过动手实验就能得出结论,比如说如果实现了该接口的类的方法权限不是 public 或者方法返回值、参数类型、参数个数与接口中定义的不同,Think in ActionScript 3.0Ⅱ(9),是否可以测试通过呢?如果在定义接口时在 function 前面加入了访问权限

其实这些结论大家通过动手实验就能得出结论。比如说如果实现了该接口的类的方法权限不是 public 或者方法返回值、参数类型、参数个数与接口中定义的不同,是否可以测试通过呢?如果在定义接口时在 function 前面加入了访问权限修饰符,可以不可以以呢?类似这些问题不需要查书或去问别人,自己动手做实验是最快最高效的学习方法,编译器会告诉你,行还是不行,直接问它就可以了!以上做法都行不通。

为了更好地保证接口的实现不出差错,通常最保险的做法就将该方法复制(ctrl + c)过来,并在前面加上 public,再去实现。

6.5 接口用法总结

通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。(就像人拥有一项本领)。

通过接口可以指明多个类需要实现的方法。(描述这项本领的共同接口)。

通过接口可以了解对象的交互界面,而不需要了解对象所对应的类。

我们通常所说的“继承”广义来讲,它不仅是指 extends ,还包括 implements,回想 5.2 节中说到多态存在的三个必要条件,这里面所说的就广义的继承。说得更明确一点就是:要有继承(或实现相同接口),要有重写(或实现接口),父类引用指向子类对象(或接口类型指向实现类的对象)。下面来看最后一个知识点,使用接口实现多态。

6.6 TestInterFacePoly.as —— 接口实现多态

package {
  public class TestInterFacePoly {
    public function TestInterFacePoly() {
      var cat:Cat = new Cat();
      var duck:Duck = new Duck();
            var racing:Racing = new Racing(cat);
      racing.go();
    }
  }
}

interface Runnable {
  function run():void;
}

interface Swimmable {
  function swim():void;
}

interface Flyable {
  function fly():void;
}

class Cat implements Runnable, Swimmable {
  public function run():void {
    trace("Cat run");
  }
    public function swim():void {
    trace("Cat swim");
  }
    public function climb():void {
    trace("Cat Climb");
  }
}

class Duck implements Runnable, Flyable {
  public function run():void {
    trace("Duck run");
  }
    public function fly():void {
    trace("Duck fly");
  }
}

class Racing {
  var runner:Runnable;
  public function Racing(r:Runnable) {
    runner = r;
  }
  public function go():void {
    runner.run();
  }
}

上一页  4 5 6 7 8 9 10  下一页

Tags:Think in ActionScript

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接