淺談JAVA繼承關系中的構造函數


話不多說直接上例子,我的例子中定義了兩個類,TheSon和TheFather,TheSon繼承了TheFather,如圖:

TheSon類的定義:

在這里插入圖片描述

TheFather類的定義:
在這里插入圖片描述

當我們初始化TheSon類的時候,也就是new TheSon()的時候,就會調用TheSon類中的無參構造器,如圖:

在這里插入圖片描述


我們看到在代碼中並沒有調用TheFather類中的構造,來看看運行結果:

在這里插入圖片描述


可以看到即使沒有調用父類的構造父類的構造依舊執行了,那這是怎么回事呢?

答案很簡單:java在執行過程中在執行子類的構造方法之前會隱式的調用父類的無參,如圖:

在這里插入圖片描述


再看運行結果:

在這里插入圖片描述


當我們顯示的調用之后,它就不會再進行隱式的調用,比如我們在相同地方調用父類的有參構造,如圖:

在這里插入圖片描述


在這里插入圖片描述

有萌新可能就會疑問了,super這個關鍵字到底是干嘛的?

概念:在Java類中使用Super來引用父類的成分,用this來引用當前對象

 

提問:new TheSon() 時創建的是一個對象還是兩個對象?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM