多態時子類父類構造器,成員變量及方法的調用順序。

父類的靜態代碼塊

子類的靜態代碼塊

父類的構造函數(這個時候成員變量值爲java默認初始值)

(在父類構造函數完成之後)給所有成員變量賦值

子類的構造函數

然後執行自定義的方法。

並不執行靜態方法。


一些零碎的知識點:

 1.Java中除了static方法和final方法(private方法屬於final方法)之外,其他所有方法都是後期綁定。

 2.在子類中是不能覆蓋父類的私有方法的,在調用的時候回仍然執行父類原有的方法。在導出類中對於基類的private方法,最好採用不同的名字。

 3.方法如果是靜態的就不存在多態,因爲他與類相關聯而非對象。 

 4.構造器的調用順序原因:“構造動作一經發生,那麼對象所有部分的全體成員都會得到構建。然而,在構造器內部,我們必須確保所要使用的成員都已經構建完畢。爲確保這一目的,唯一的辦法就是首先調用基類構造器。那麼在進入導出類構造器是,在基類中可供我們訪問的成員都得到初始化。”

 5.在清理的過程中,務必調用父類的清理方法,否則基類不會被清除。至於順序和構造時相反,因爲導出類的清理可能會調用基類中的方法,所以需要使基類中的構件仍起作用而不應過早地銷燬他們。 

 以上知識點全出自《Java編程思想》。我只是一個小小的總結工。


 在這裏不得不吐槽一下,有些人把《Java編程思想》裏的東西直接拷貝,然後貼上原創,甚至都沒有說明出自哪裏,這樣真的好嗎,請尊重原創這2個字。



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