Let\'s say someone gives you a class, Super, with the following constructors:
public class Super
{
public Super();
public Super(int arg)
Can't be done as such as super must be first statement in a constructor.
The proper alternative is a builder class and to have one constructor in the derived class for each constructor in the super class.
eg.
Derived d = new DerivedBuilder().setArg(1).createInstance();
public class DerivedBuilder {
private int arg;
// constructor, getters and setters for all needed parameters
public Derived createInstance() {
// use appropriate constructor based on parameters
// calling additional setters if need be
}
}