Wie Eclipse Java-Code ausführt, wenn Kompilierungsfehler auftreten

Wenn der folgende Java-Code in Eclipse ausgeführt wird, gibt er die richtige Ausgabe aus (d. H. Gibt 'Klasse B' aus), aber gemäß der Java-Spezifikation kann der Code nicht kompiliert werden (da der Superklassenkonstruktor ein erfordert)int Das Argument und der vom Compiler für Klasse B bereitgestellte Konstruktor enthalten einen Aufruf des Konstruktors no arg der Superklasse (der nicht definiert ist). Wenn Sie versuchen, die Datei mit dem Befehl javac in der Befehlszeile zu kompilieren, kompiliert er nur die Superklasse ie class A und schlägt mit folgendem Kompilierungsfehler fehl:

<code>B.java:8: cannot find symbol
symbol  : constructor A()
location: class A
public class B extends A {
   ^
1 error
</code>

Es folgt der Inhalt der Java-Datei:

<code>class A {

    public A(int x) {
        //
    }
}

public class B extends A {

    public static void main(String[] args) {
        System.out.println("Class b");
    }
}
</code>

Kann jemand erklären, wie Eclipse die Hauptmethode ausführt, ohne die Klasse kompilieren zu können. Danke im Voraus.

AKTUALISIEREN

Ich habe die von eclipse erstellte .class-Datei im bin-Ordner gelöscht und versucht, die Klasse auszuführen. Sie konnte nicht kompiliert werden und wurde daher nicht ausgeführt. Aber als ich eine Quelldatei mit dem öffentlichen Klassennamen erstellt und ohne Inhalt gespeichert und dann den obigen Inhalt hinzugefügt habe, hat es funktioniert. Wenn eclipse die zuvor kompilierte Version zur Ausführung verwendet, wie könnte es dann die Ausgabe der geben?main Methode, da es nicht die hattemain Methode zum Zeitpunkt des Erfolgs vollständige Zusammenstellung?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage