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

話很少說直接上例子,個人例子中定義了兩個類,TheSon和TheFather,TheSon繼承了TheFather,如圖:

TheSon類的定義:java

在這裏插入圖片描述

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

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

在這裏插入圖片描述


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

在這裏插入圖片描述


能夠看到即便沒有調用父類的構造父類的構造依舊執行了,那這是怎麼回事呢?spa

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

在這裏插入圖片描述


再看運行結果:對象

在這裏插入圖片描述


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

在這裏插入圖片描述


在這裏插入圖片描述

有萌新可能就會疑問了,super這個關鍵字究竟是幹嗎的?繼承

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

 

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

相關文章
相關標籤/搜索