Javadoc erwähnt, dass die Object-Klasse einen öffentlichen no-arg-Konstruktor hat. Aber der Quellcode von Object enthält keinen expliziten Konstruktor. Also hat der Compiler offensichtlich einen dafür erzeugt. Wenn ich jedoch die Call-Stack-Ablaufverfolgung sehe, wenn ein Konstruktor im Begriff ist zurückzugeben (wie unten gezeigt), sehe ich keinen Aufruf an in dieser Ablaufverfolgung.Java: Hat die Objektklasse einen Konstruktor?
Die Frage ist also, hat Object-Klasse einen Standardkonstruktor wie das Dokument sagt? Wenn ja, warum sehe ich es nicht im Call-Stack-Trace?
public ConTest()
{
new Throwable().printStackTrace();
}
Ergebnis:
java.lang.Throwable
at ConTest.<init>(ConTest.java:8)
at ConTest.main(ConTest.java:16)
hmm von http://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html Alle Klassen mindestens einen Konstruktor haben. Wenn eine Klasse nicht explizit deklariert, stellt der Java-Compiler automatisch einen Konstruktor ohne Argumente zur Verfügung, der als Standardkonstruktor bezeichnet wird. Dies ist der Object-Konstruktor, wenn die Klasse kein anderes übergeordnetes Objekt hat. – MimiEAM
Ist es möglich, mehr als eine Antwort zu akzeptieren? Weil ich alle 4 Antworten akzeptieren möchte, die unten gegeben werden. – shrini1000