Digamos que alguien le da una clase, Super
, con los siguientes constructores:¿Cómo llamar a un constructor diferente condicionalmente en Java?
public class Super
{
public Super();
public Super(int arg);
public Super(String arg);
public Super(int[] arg);
}
Y digamos que desea crear una subclase Derived
. ¿Cómo se llama condicionalmente un constructor en Super
?
En otras palabras, ¿cuál es la forma "correcta" de hacer algo como esto?
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);
}
}
cuáles son algunos ejemplos de 'some_external_condition'? Parece que cualquier condición debería ser verificada * después de que se llame a '' super'. – ggreiner
@ggreiner: no tiene que ser externo, en realidad. Cambié ligeramente el ejemplo. Podría basarse simplemente en el argumento del usuario (que más bien podría ser una enumeración en lugar de un número entero, pero eso no está relacionado). – Mehrdad