百潤網(wǎng)站建設,seo 最新,基金會網(wǎng)站建設方案,做的網(wǎng)站怎么賣出去繼承中,構(gòu)造方法的訪問特點
父類的構(gòu)造方法不會被子類繼承,但可以通過super()調(diào)用父類的構(gòu)造方法,且只能在子類調(diào)用,在測試類中是不能手動單寫構(gòu)造方法的。子類中所有的構(gòu)造方法默認先調(diào)用父類的無參構(gòu)造,再執(zhí)行自己構(gòu)…- 繼承中,構(gòu)造方法的訪問特點
- 父類的構(gòu)造方法不會被子類繼承,但可以通過super()調(diào)用父類的構(gòu)造方法,且只能在子類調(diào)用,在測試類中是不能手動單寫構(gòu)造方法的。
- 子類中所有的構(gòu)造方法默認先調(diào)用父類的無參構(gòu)造,再執(zhí)行自己構(gòu)造方法的其他代碼
- 為什么會先默認調(diào)用父類的無參構(gòu)造?
- 子類在初始化的時候,有可能會使用到父類中的數(shù)據(jù),如果此時父類中的數(shù)據(jù)沒有完成初始化,只是單單定義了,子類就無法使用該父類的數(shù)據(jù)
- 所以子類初始化之前,一定要調(diào)用父類構(gòu)造方法完成父類數(shù)據(jù)空間的初始化
- 怎么調(diào)用父類構(gòu)造方法的?
- 子類構(gòu)造方法的第一行語句默認都是:super(),不寫虛擬機也會自動加上,且在有效代碼第一行,寫了虛擬機就不加了,但必須在有效代碼第一行(注釋不算)
- 如果想調(diào)用父類有參構(gòu)造,必須手動書寫帶參數(shù)的super()進行調(diào)用
- this的使用總結(jié)
- this:理解為一個局部變量,表示當前方法調(diào)用者的地址值,且僅在該方法內(nèi)有效
- 類的成員方法,構(gòu)造方法內(nèi)部都隱含了this變量(作為形參存在),當該方法被調(diào)用時,虛擬機就會把調(diào)用者的地址值賦給this
- 類的方法內(nèi)不與局部變量重名的成員變量,變量名前也隱含了this
- 記住this只是在類的方法(成員方法,構(gòu)造方法)內(nèi)的一個局部變量。相反,this不是在創(chuàng)建對象時,被包含在對象里的。
- super的使用總結(jié)
- this和super的使用方式

- 若類的成員變量與局部變量不重名,那么前面的this可以省略不寫
- 在類里調(diào)用本類的成員方法時,前面的this也可以省略不寫
- this():
a. 僅在構(gòu)造方法中,用來調(diào)用本類的其他構(gòu)造方法
b. 一旦寫完this(),虛擬機便不會添加super()了,因為其他構(gòu)造的第一行已經(jīng)寫過super()了
c. this()必須寫在有效代碼的第一行,如super()