¿Cómo llamar a un constructor padre específico desde una clase interna anónima?
Ok, entonces sé que una clase interna anónima está extendiendo implícitamente una clase padre o implementando una interfaz, y por lo tanto, será necesario llamar a un constructor de la superclase. Sin embargo, no estoy seguro de cómo crear un constructor para la clase anónima (si es posible) y sin definir un constructor, no estoy seguro de cómo hacer llamadas a super (). Aquí está mi código de práctica:
public class AnonymousConstructor {
public static void main(String[] args) {
//I'm not sure how to explicitly call one of the arg super constructors
MyBob my = new MyBob() {
//I would like to do something like this super("String"); or
//super("String", "String");
};
}
}
class MyBob extends Thread {
MyBob() {
System.out.println("No arg constructor");
}
MyBob(String a) {
System.out.println("Arg constructor");
}
MyBob(String a, String b) {
System.out.println("2 arg constructor");
}
public void run() {
System.out.println("Outer");
}
}
Mi preocupación es que si intenta crear una clase anónima de una clase que no tenga un constructor sin argumentos, el código fallará en el momento de la compilación porque no hay manera de pasar un argumento al superconstructor. ¿Es esta una preocupación válida, y si es así, hay una manera de evitar esto?