Think in ActionScript 3.0Ⅱ
2009-05-30 12:08:03 来源:WEB开发网其实这些结论大家通过动手实验就能得出结论。比如说如果实现了该接口的类的方法权限不是 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();
}
}
Tags:Think in ActionScript
编辑录入:爽爽 [复制链接] [打 印]- ››include指令与<jsp:include>动作的区别
- ››Intent和IntentFilter详解
- ››thinkphp上传错误解决方法
- ››ActionScript 2.0中的! 逻辑 NOT 运算符
- ››Interface继承至System.Object?
- ››input按钮在IE浏览器的兼容
- ››ActionScript 3.0 性能方面优化小知识整理收集
- ››Intent调用大全
- ››IntentService实现原理及内部代码
- ››Internet Explorer 无法打开
- ››Intel和Nokia宣称MeeGo将比Android更加开放且方便...
- ››innerText、outerText、innerHTML、outerHTML的区...
更多精彩
赞助商链接