2010-10-08 23 views
2

當擴展一個類時,是否不可能在沒有匹配參數的情況下重寫一個方法?ActionScript - 重寫方法沒有匹配簽名?

例如,我想使用方法的名稱,在這種情況下,它是一個套接字擴展,我想覆蓋的方法是connect。但是,我想請求股票connect函數不請求的其他參數。

是用我自己的參數創建我自己的類似連接的方法的唯一替代方法,請從此函數調用super.connect並覆蓋股票連接函數以在拋出錯誤時引發錯誤?

所有的聲音都像火車殘骸。

回答

5

Function overloading在ActionScript中不受支持(但是Darron Schall在this article中演示了某種僞超載)。

我認爲在你的情況下,只留下來創建你自己的connectEx方法。

+0

「overloading」是否意味着用附加參數覆蓋方法? – TheDarkIn1978 2010-10-08 06:18:18

+0

@ TDI1978:對。我的意思是功能重載。 – splash 2010-10-08 06:28:00

0

不幸的是,重載不受支持。作爲下一個最佳選擇,您可以考慮可選參數。這樣可以讓你按照你想要的方法傳遞儘可能少或很多的參數。該方法將接收這些參數在一個數組中,並且您可以處理它們,無論您想從那一點開始。

下面介紹如何使用可選的PARAMS的方法看起來:

function someMethod(...params):void 
{ 
    for(var i:int = 0 ; i < params.length ; i++) 
    { 
     trace("parameter: " + params[i]); 
    } 
} 

你可以閱讀更多關於optional parameters here

相關問題