比方说,有人给你一个类,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