java继承中构造方法_java之继承中构造方法总结(文字版)
子父類中的構造方法的特點
1. 在子類構造對象時,發現訪問子類構造方法時,父類也運行了.為什么呢?
答:因為,在子類構造方法中第一行有一個默認的隱式語句:super();
子類的實例化過程:子類中所有的構造方法默認都會訪問父類中的空參的構造方法.
2.為什么子類實例化的時候要訪問父類中的構造方法呢?
答:因為,在子類繼承了父類,就獲取到了父類中的內容,所以在使用父類內容之前,要先看父類是如何對自己的內容進行初始化的;所以子類在構造對象時,必須訪問父類中的構造方法,為了完成這個必須的動作,就在子類構造方法中加入了super();語句. ps:如果父類中定義了構造有參構造,卻沒有定義無參構造,那么在子類構造方法中必須用super(參數列表)明確要調用的父類中的構造方法.
注意:super語句必須放在子類構造方法的第一行,因為父類的初始化動作要先完成.
創建子類對象時初始化過程:
首先在堆內存中開辟內存空間----->父類,子類默認初始化----->子類構造進棧----->執行第一行super()----->父類構造進棧
----->父類顯示初始化----->父類構造代碼塊初始化----->父類構造方法初始化----->父類構造方法執行完畢----->回到子類構造
----->子類顯式初始化----->子類構造代碼塊初始化----->子類構造方法初始化----->子類構造方法執行完畢----->初始化完成.
另外說一點:不管是在子類還是父類的方法中,如果默認有this的,那么這個this都指向子類對象,也就是說,在父類的方法中,如果有this的(也可以說是沒有被static修飾的),都是指向了子類的對象所在的內存區域,而不是父類,因為這個時候就沒有父類對象.
---------------------
作者:hurricane_ning
來源:CSDN
原文:https://blog.csdn.net/weixin_36898943/article/details/79762489
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的java继承中构造方法_java之继承中构造方法总结(文字版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java开发变化_十年编程语言变化,大众
- 下一篇: java中map可以为空吗_Java: