Javadoc упоминает, что класс Object имеет открытый конструктор no-arg. Но исходный код объекта не содержит в нем явного конструктора. Поэтому, очевидно, компилятор создал для него. Однако, если я вижу трассировку стека вызовов, когда конструктор вот-вот вернется (как показано ниже), я не вижу никакого вызова Object.<init>
в этой трассе.Java: класс Object имеет конструктор?
Итак, вопрос в том, имеет ли класс объекта конструктор по умолчанию, как говорит документ? Если да, почему я не вижу его в трассировке стека вызовов?
public ConTest()
{
new Throwable().printStackTrace();
}
Результат:
java.lang.Throwable
at ConTest.<init>(ConTest.java:8)
at ConTest.main(ConTest.java:16)
хмм от http://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html Все классы имеют по крайней мере один конструктор. Если класс не явно объявляет, компилятор Java автоматически предоставляет конструктор no-argument , называемый конструктором по умолчанию. По умолчанию используется конструктор Object, если класс не имеет другого родителя. – MimiEAM
Можно ли принять более одного ответа? Потому что я хотел бы принять все 4 ответа, приведенные ниже. – shrini1000