當擴展一個類時,是否不可能在沒有匹配參數的情況下重寫一個方法?ActionScript - 重寫方法沒有匹配簽名?
例如,我想使用方法的名稱,在這種情況下,它是一個套接字擴展,我想覆蓋的方法是connect
。但是,我想請求股票connect
函數不請求的其他參數。
是用我自己的參數創建我自己的類似連接的方法的唯一替代方法,請從此函數調用super.connect
並覆蓋股票連接函數以在拋出錯誤時引發錯誤?
所有的聲音都像火車殘骸。
當擴展一個類時,是否不可能在沒有匹配參數的情況下重寫一個方法?ActionScript - 重寫方法沒有匹配簽名?
例如,我想使用方法的名稱,在這種情況下,它是一個套接字擴展,我想覆蓋的方法是connect
。但是,我想請求股票connect
函數不請求的其他參數。
是用我自己的參數創建我自己的類似連接的方法的唯一替代方法,請從此函數調用super.connect
並覆蓋股票連接函數以在拋出錯誤時引發錯誤?
所有的聲音都像火車殘骸。
Function overloading在ActionScript中不受支持(但是Darron Schall在this article中演示了某種僞超載)。
我認爲在你的情況下,只留下來創建你自己的connectEx
方法。
不幸的是,重載不受支持。作爲下一個最佳選擇,您可以考慮可選參數。這樣可以讓你按照你想要的方法傳遞儘可能少或很多的參數。該方法將接收這些參數在一個數組中,並且您可以處理它們,無論您想從那一點開始。
下面介紹如何使用可選的PARAMS的方法看起來:
function someMethod(...params):void
{
for(var i:int = 0 ; i < params.length ; i++)
{
trace("parameter: " + params[i]);
}
}
你可以閱讀更多關於optional parameters here。
「overloading」是否意味着用附加參數覆蓋方法? – TheDarkIn1978 2010-10-08 06:18:18
@ TDI1978:對。我的意思是功能重載。 – splash 2010-10-08 06:28:00