2011-04-20 60 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