[Java] 在構造函數中放入super()是不必要的?


Answers

如果超類構造函數沒有參數,Java會自動為您調用它。 如果它有參數,你會得到一個錯誤。

src: http://java.sun.com/docs/books/tutorial/java/IandI/super.html : http://java.sun.com/docs/books/tutorial/java/IandI/super.html

Question

如果我沒有把它放在子類的構造函數中,這不是由編譯器自動放置嗎?

那意味著我甚至不需要關心它? 在一些文章中,他們把它拿出來了。

如果我有一個帶參數的構造函數,這是構造函數,還是需要一個沒有參數列表的構造函數?




如果沒有顯式調用super([arguments]),任何類構造函數總是調用“super()”,只有我們記住在編程時訪問超類構造函數...當我們不擴展任何特定類時自動擴展java.lang .Object類




如果你的方法覆蓋了它的一個超類的方法,你可以通過使用關鍵字super來調用重寫的方法。

調用超類構造函數的語法是

super();  
--or--
super(parameter list);

使用super(),將調用超類無參數構造函數。 使用super(參數列表),調用具有匹配參數列表的超類構造函數。

注意:如果構造函數沒有顯式調用超類構造函數,那麼Java編譯器會自動將調用插入到超類的無參構造函數中。 如果超類沒有沒有參數的構造函數,那麼你會得到一個編譯時錯誤。 對象確實有這樣的構造函數,所以如果Object是唯一的超類,那就沒有問題了。