虽然ActionScript3中还不支持抽象类,当我们可以通过Mims Wright的抽象类和抽象方法来实现,具体参考[url]http://dispatchevent.org/mims/abstract-classes-in-as3/[/url].
使用方式如下:
抽象类: AbstractFun
具体子类: ConcreteFun
如果试图生成AbstractFun的实例,就会抛出异常:[b]ERROR:An abstract class may not be instantiated.[/b]
使用方式如下:
抽象类: 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的实例,就会抛出异常:[b]ERROR:An abstract class may not be instantiated.[/b]