as3.0 interface接口使用方法

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

AS2.0的时候就支持接口了

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

比方你定义了一个方法

代码:


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


參数 arg 的类型必须是 MyClass,由于我们须要在该方法中使用MyClassAPI
MyClass是一个类的话,你传入的对象必须是MyClass类的实例或者是MyClass子类的对象,可是当你要传入的一个对象,他既不是MyClass类的实例也不是MyClass子类的对象,而是一个已经继承了其它类的对象呢,这样就难办了。 由于ASJava一样,都不同意多重继承,多重继承会带来使类结构变的复杂难以管理的麻烦。

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

代码: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

                }
                       }
}


posted @ 2014-06-16 17:08  blfshiye  阅读(795)  评论(0编辑  收藏  举报