java中的super

代碼中我們 有時候會看到這樣:

 

那這個super是什麼 作用呢?

super是指向父類的引用,如果構造方法沒有顯示地調用父類的構造方法,那麼編譯器會自動爲它加上一個默認的super()方法調用。如果父類由沒有默認的無參構造方法,編譯器就會報錯,super()語句必須是構造方法的第一個子句。

  定義子類的一個對象時,會先調用子類的構造函數,然後在調用父類的構造函數,如果父類函數足夠多的話,會一直調用到最終的父類構造函數,函數調用時會使用棧空間,所以按照入棧的順序,最先進入的是子類的構造函數,然後纔是鄰近的父類構造函數,最後再棧頂的是最終的父類構造函數,構造函數執行是則按照從棧頂到棧底的順序依次執行.

(引用自https://www.cnblogs.com/yyy6/p/8976584.html )

 

super:它是一個指代變量,用於在子類中指代父類對象。

 

看到網上的文章有時候會拿this和super來說, 這裏如何區分呢?

目前對我來說,就以下的區別

this是用在某個對象裏面, 引用該對象的屬性或方法時使用;

super是用在繼承了父類的子類中,引用父類的方法時使用。訪問父類的方法,調用父類構造方法,訪問父類中的隱藏成員變量;

 

有理解不到的地方後期再修改補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章