話不多說直接上例子,我的例子中定義了兩個類,TheSon和TheFather,TheSon繼承了TheFather,如圖:
TheSon類的定義:
TheFather類的定義:
當我們初始化TheSon類的時候,也就是new TheSon()的時候,就會調用TheSon類中的無參構造器,如圖:
我們看到在代碼中並沒有調用TheFather類中的構造,來看看運行結果:
可以看到即使沒有調用父類的構造父類的構造依舊執行了,那這是怎么回事呢?
答案很簡單:java在執行過程中在執行子類的構造方法之前會隱式的調用父類的無參,如圖:
再看運行結果:
當我們顯示的調用之后,它就不會再進行隱式的調用,比如我們在相同地方調用父類的有參構造,如圖:
有萌新可能就會疑問了,super這個關鍵字到底是干嘛的?
概念:在Java類中使用Super來引用父類的成分,用this來引用當前對象