Скажем, кто-то дает вам класс Super со следующими конструкторами:
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);
    }
}
