Wie rufe ich einen bestimmten übergeordneten Konstruktor aus einer anonymen inneren Klasse auf?

Ok, ich weiß also, dass eine anonyme innere Klasse entweder implizit eine übergeordnete Klasse erweitert oder eine Schnittstelle implementiert. Daher muss ein Konstruktor der Oberklasse aufgerufen werden. Ich bin mir jedoch nicht sicher, wie ich einen Konstruktor für die anonyme Klasse erstellen soll (falls dies möglich ist), und ohne einen Konstruktor zu definieren, weiß ich nicht, wie ich super () aufrufen soll! Hier ist mein Übungscode:

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");
    }
}

Wenn Sie versuchen, eine anonyme Klasse aus einer Klasse zu erstellen, die keinen Konstruktor ohne Argument enthält, schlägt der Code beim Kompilieren fehl, da dem Superkonstruktor kein Argument übergeben werden kann. Ist dies ein berechtigtes Anliegen, und wenn ja, gibt es einen Weg, dies zu umgehen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage