[转]as3.0 interface接口使用方法

AS在2.0的时候就支持接口了



接口能够让你的程序更具扩展性和灵活性,打个例如



比方你定义了一个方法

代码:

public function aMethod(arg:MyClass):void { .....}

參数 arg 的类型必须是 MyClass,由于我们须要在该方法中使用MyClass的API

而MyClass是一个类的话,你传入的对象必须是MyClass类的实例或者是MyClass子类的对象,可是当你要传入的一个对象,他既不是MyClass类的实例也不是MyClass子类的对象,而是一个已经继承了其它类的对象呢,这样就难办了。 由于AS和Java一样,都不同意多重继承,多重继承会带来使类结构变的复杂难以管理的麻烦。



这时候接口就能派上用场了。

代码:public function aMethod(arg:MyInterface):void { .....}

这时候我们传入的对象他仅仅要是实现了MyInterface,都能够,不管是继承了什么详细类,并且一个类能够实现多个接口,这样就攻克了不同意多重继承的问题。



以上仅仅是我个人举的一个小小样例,我的认识可能还非常浅显,详细大家还是要多看oo方面的资料,网上有非常多,多用Google吧

注意:

1、在接口中定义了几个方法,实现时就得实现几个方法,方法名称、參数个数、參数值、返回值等都得一样。

样例:

1、定义接口。

package {

public interface IExample {

function TestFunc(param:String):String;

function TestFunc_1(param:Number,param_1:Number):Number;

}

}

2、实现接口。

package {

public class TestInterface implements IExample {

public function TestInterface() {

}

public function TestFunc(param:String):String {

return param;

}

public function TestFunc_1(param:Number,param_1:Number):Number {

return param;

}

}

}

package {

public class TestInterface_1 implements IExample {

public function TestInterface_1() {

}

public function TestFunc(param:String):String {

return param;

}

public function TestFunc_1(param:Number,param_1:Number):Number {

return param+param_1;

}

}

}

3、使用接口类:

package {

            import flash.display.Sprite;

            public class InterfaceExample extends Sprite

{

            private var MyNumber:Number=20;

            private var MyTestInterface,MyTestInterface_1:IExample;

            public function InterfaceExample()

{

                      MyTestInterface=new TestInterface();

                      trace(MyTestInterface.TestFunc("Hi..Hi"));        //output:Hi..Hi

                        trace(MyTestInterface.TestFunc_1(MyNumber,MyNumber+1));   //output:20

                        MyTestInterface_1=new TestInterface_1();

                       trace(MyTestInterface_1.TestFunc("ho..Hi"));     //output:ho..Hi

                        trace(MyTestInterface_1.TestFunc_1(MyNumber,MyNumber+1));   //output:41

}

                       }

}

as3.0 interface接口使用方法的更多相关文章

  1. As3.0 Interface 与类的使用

    来源:http://blog.sina.com.cn/s/blog_4d65c19e0100bfkb.html 抽象类:又叫抽象基类:可以包含一般类所包含的所有特性,例如,字段,属性,方法,抽象类不能 ...

  2. AS3.0函数定义的方法

    在AS3.0中函数的定义有两种方法: 函数语句定义法: function 函数名(参数1:参数类型,参数2:参数类型):返回值类型{ 函数折行的语句 } function testAdd(a:int, ...

  3. jdk1.8 接口default方法

    jdk1.8 版本新增了一些特性,与之前版本差异相对.若不清楚地话,在使用过程中会产生很大的疑问. 本次介绍的是interface接口中方法的特殊性. 在以前jdk版本在接口中是只允许定义方法方法名, ...

  4. 再理解 as3.0接口

    As3.0 接口的理解与运用 1.把接口当作"类"来理解.你easy接受她. 我们看她的标准结构: package 包路径{ public interface 接口名称{ func ...

  5. XMLHttpRequest 2.0与FileReader接口的方法

    jsonpd的实现: var jsonp = function (options) { var url = options.url, params = options.params || {}, ca ...

  6. java interface接口的传值方法

    A 类 package interface_test; public class A { private IPresenter ip; public A(IPresenter ip) { this.i ...

  7. Java的接口(interface)属性和方法的类型

    接口的属性必须是public static final Type 接口的方法必须是public abstract Type 不管你是全写,或只写部分,系统都会自动按上面的要求不全 也就是说 接口中 所 ...

  8. java中获取接口(方法)中的参数名字(eclipse设置编译参数)(java8 javac -parameters)

    interface接口参数 jdk1.7及以前使用spring功能实现的: 注意: 1.该功能只能获取类的方法的参数名,不能获取接口的方法的参数名. public static void test() ...

  9. As3.0 类的【枚举】

    As3.0 类的枚举   “枚举”是您创建的一些自定义数据类型,用于封装一小组值.ActionScript 3.0 并不支持具体的枚举工具,这与 C++ 使用 enum 关键字或 Java 使用 En ...

随机推荐

  1. Python状况:为什么PyPy是Python的未来?

    Python 现在已经不仅仅是胶水脚本语言了. 不信?看看下面使用Python的成功案例: YouTube - 主要由 Python编写 NASA Industrial Light & Mag ...

  2. C#的默认编码

    C# 的所有源代码文件,默认编码为 UTF-8,注意,是源代码文件,而不是 C# 中的 string. C# 中的所有 string,默认编码均为 Unicode (UTF-16). C# 产生的 A ...

  3. c#中格式化导出Excel数据

    在项目开发过程中经常会遇到数据导出Excel.如果只是导出数据就好办了.但往往用户会有各种格式要求.加粗.边框.合并单元格.汇总等功能. 以下的方法是基于Excel模版方式写入数据导出的功能.可以最大 ...

  4. Zookeeper Hello World

    1.Zookeeper的安装使用 在官网上下载zk的安装包(http://labs.renren.com/apache-mirror/zookeeper/),解压后cd到zk的目录下. 单机版安装方法 ...

  5. Container View Controller

    有时候,我们的Controler中包含有另一个controler view的view时,可以使用这种方式. https://developer.apple.com/library/ios/featur ...

  6. HDU-3872 Dragon Ball 线段树+DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3872 题意:有n个龙珠按顺序放在一列,每个龙珠有一个type和一个权值,要求你把这n个龙珠分成k个段, ...

  7. Visual Studio Profiler 跟踪检查每个exe dll 性能 执行时间 CPU占用情况的方法

  8. 第三百二十八天 how can I 坚持

    今天电脑快把我搞疯了,一天得死机快十次,不知道怎么回事,最后升级了win10,感觉就是比较好. 哎,成了这个样子,当初为什么又让我抽中了那个签,搞不懂啊,这都是为啥. 我哪里错了,还是冥冥中自有天意, ...

  9. how to javafx hide background header of a tableview?

    http://stackoverflow.com/questions/12324464/how-to-javafx-hide-background-header-of-a-tableview ———— ...

  10. SQLCONNECTION使用HTTP通信协议和中间件连接

    SQLCONNECTION支持TCP/IP和HTTP两种通信协议和中间件连接.一般地,默认情况下使用TCP/IP协议. HTTP 协议的一个非常重要的优势在于穿越防火墙. SQLCONNECTION使 ...