实现ActionScript真正的抽象类和抽象方法

虽然ActionScript3中还不支持抽象类,当我们可以通过Mims Wright的抽象类和抽象方法来实现,具体参考 http://dispatchevent.org/mims/abstract-classes-in-as3/.

使用方式如下:
抽象类: AbstractFun
package com.myas.abstractclassandinterface
{
  import com.mimswright.utils.AbstractEnforcer;
  public class AbstractFun
  {
     //抽象类的构造函数
     public function AbstractFun()  {
        AbstractEnforcer.enforceConstructor(this, AbstractFun);
        //...
     }
     //抽象方法doFun()
     public function doFun():void {
        AbstractEnforcer.enforceMethod();
        //...
     }
  }
}


具体子类: ConcreteFun
package com.myas.abstractclassandinterface
{
  public class ConcreteFun extends AbstractFun
  {
     //构造函数
     public function ConcreteFun()  {
        //...
     }
     //方法doFun()
     public function doFun():void {
        trace("do fun");
        //...
     }
  }
}


如果试图生成AbstractFun的实例,就会抛出异常: ERROR:An abstract class may not be instantiated.

你可能感兴趣的:(java,actionscript)