如果構造函數將其參數設置爲vararg(...),那麼似乎不可能創建一個僅將該變量傳遞給超類的子類。使用可變參數從動作構造函數中調用super()
對於正常功能的相同情況,有一個相關的問題需要修復:Wrapping a Vararg Method in ActionScipt但我無法使用超級調用工作。
基類:
public class Bla
{
public function Bla(...rest)
{
trace(rest[0]); // trace the first parameter
}
}
子類:
public class Blie extends Bla
{
public function Blie(...rest)
{
// this is not working, it will
// pass an array containing all
// parameters as the first parameters
super(rest);
}
}
如果我現在請
var b1 = new Bla('d', 'e');
var b2 = new Blie('a', 'b', 'c');
我得到的輸出
d
a,b,c
而且我希望它打印出來:
d
a
除了實際移動參數的處理子類或轉移其關閉,以一個單獨的初始化方法,沒有人知道如何獲得超級電話吧?
嗯,不是問題的答案我所期待的,但由於確認了我的懷疑。 – 2010-02-10 11:10:37