簡體   English   中英

應該隱式或顯式調用super()嗎?

[英]Should super() be called implicitly or explicitly?

我了解到,構造對象時,無論是否在構造函數中編寫,都將調用super() 但是我注意到在某些代碼中, super()方法被顯式調用。 我應該在構造函數中隱式或顯式調用super()嗎? 有什么不同?

我應該在構造函數中隱式或顯式調用super()方法嗎? 有什么不同?

是否調用super()之間沒有語義差異,也沒有性能差異。

這純粹是一個表面問題。 下定主意...或遵循項目采用的樣式指南的內容(如果有的話)。


在另一方面,如果super您需要調用具有參數,那么非常重要,你明確地調用它。 而且,如果超類沒有no-args構造函數,則不能顯式或隱式使用super()

如果討論是圍繞無參數 super()構造函數進行的,則沒有任何區別。

如果未顯式調用Java,則對所有基類構造函數隱式調用super() 請記住,Java始終僅調用超類無參數構造函數。

在某些情況下,作為開發人員,您可能需要調用基於參數的超級構造函數。 在這些情況下,您必須顯式調用基於參數的超級構造函數,例如: super(arg1, arg2, ...)

IMO,避免調用無參數的super()構造函數,因為它既不會對邏輯產生任何影響,也不會提高可讀性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM