Javadoc提到Object類有一個公共的無參數構造函數。但是Object的源代碼中沒有任何顯式的構造函數。顯然,編譯器爲它生成了一個。但是,如果在構造函數即將返回時看到調用堆棧跟蹤(如下所示),則在該跟蹤中看不到任何對Object.<init>
的調用。Java:Object類有一個構造函數嗎?
所以問題是,是否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編譯器會自動提供一個名爲默認構造函數的無參構造函數 。如果該類沒有其他父級,則此默認對象構造函數。 – MimiEAM
是否可以接受多個答案?因爲我想接受下面給出的全部4個答案。 – shrini1000