比方說,有人給你一個類,Super
,用下面的構造函數:如何在Java中有條件地調用不同的構造函數?
public class Super
{
public Super();
public Super(int arg);
public Super(String arg);
public Super(int[] arg);
}
而且我們說你要創建一個子類Derived
。你如何在Super
有條件地調用構造函數?
換句話說,什麼是「正確」的方式來做這樣的工作?
public class Derived extends Super
{
public Derived(int arg)
{
if (some_condition_1)
super();
else if (some_condition_2)
super("Hi!");
else if (some_condition_3)
super(new int[] { 5 });
else
super(arg);
}
}
什麼是「some_external_condition」的一些例子嗎?看起來好像任何這樣的情況必須在* super之後被檢查*。 – ggreiner 2012-02-10 23:09:38
@ggreiner:實際上它不一定是外部的。我稍微改變了這個例子。它可以簡單地基於用戶的參數(這可能更適合作爲枚舉而不是整數,但這有點不相關)。 – Mehrdad 2012-02-10 23:11:12