2011-04-20 48 views
0

如果我想添加一些的做重写功能时,我必须匹配参数/参数吗?

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); 
} 

实施我必须把所有的参数在我的函数的声明或者它捡起来暗示?

回答

2

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

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

这种不可能继承(或继承)静态方法是人们试图尽量避免使用静态方法的原因之一 - 静态方法消除了OO语言继承的威力。

+0

由于某种原因,现在我已经把它连接起来了......它不会让我重写它......它就像它说的那样,函数不是覆盖函数,即使它们的名字与我继承的类相同从。这与PopUpManager是单身人士的事实有关吗? – Damon 2011-04-20 05:43:15

+0

ActionScript无法阻止您继承单例,您无法将构造函数设为私有。也就是说,它可以阻止您通过使用私有的,外部不可见的类作为构造函数的参数来创建继承的类。但是等等 - 这是一种静态方法!您不能在ActionScript中重写静态方法!我会编辑答案... – 2011-04-20 06:52:50