Как вызвать конкретный родительский конструктор из анонимного внутреннего класса?
Итак, я знаю, что анонимный внутренний класс либо неявно расширяет родительский класс, либо реализует интерфейс, и поэтому должен быть вызван конструктор суперкласса. Однако я не уверен, как создать конструктор для анонимного класса (если это возможно), и без определения конструктора, я не уверен, как делать вызовы super ()! Вот мой тренировочный код:
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");
}
}
Меня беспокоит то, что если вы попытаетесь создать анонимный класс из класса, у которого нет конструктора без аргументов, код завершится ошибкой во время компиляции, потому что нет способа передать аргумент суперконструктору. Это действительная проблема, и если так, есть ли способ обойти это?