在制作覆盖功能时是否必须匹配参数/参数?

时间:2011-04-20 05:29:59

标签: actionscript override subclass

如果我想在

的实现中添加一些东西
public static function createPopUp(parent:DisplayObject,
                                   className:Class,
                                   modal:Boolean = false,
                                   childList:String = null,
                                   moduleFactory:IFlexModuleFactory = null):IFlexDisplayObject
{   
    return impl.createPopUp(parent, className, modal, childList, moduleFactory);
}

我是否必须将所有参数放在我的函数声明中,或者是否隐式拾取它们?

1 个答案:

答案 0 :(得分:2)

是 - ActionScript不支持仅覆盖方法重载,在这种情况下,方法的签名必须与重写方法的签名完全匹配。

但是你试图覆盖一个在ActionScript中根本不可能的静态方法。如果你想在代码片段中创建你的类不继承任何东西,可以在里面放一个静态的createPopUp方法,让它从你要装饰的类调用静态createPopUp方法,并调用你的类静态方法而不是原始方法。

这种对合理继承(或根本不继承)静态方法的不可能性是为什么人们应尽量避免使用静态的原因之一 - 静态学会剥夺OO语言的继承权。