建構函式的this和super的呼叫

2021-06-05 20:00:06 字數 653 閱讀 1959

/*建構函式的this和super的呼叫

*/class a  

a()a(int i)

}class b extends a

b(int i)}/*

1 輸出結果:啥也沒輸出

2 輸出結果:a  b  

3 輸出結果:a  aa  bb

this和super的區別:兩者的呼叫很相似,區別在於

super呼叫的是其父類的構造方法,this呼叫的是同乙個類中重灌的構造方法;

使用super呼叫父類構造方法時必須出現在子類構造方法的第一行,兩者不能同時出現。

子類構造方法的呼叫父類構造方法的主要有一下幾種情況:

1 子類構造方法執行體的第一行**使用super顯示呼叫父類構造方法,

系統將根據super呼叫裡傳入的實參列表呼叫父類對應的構造方法。

2 子類構造方法執行體的第一行**使用this顯示調本類中過載構造方法,

系統將根據this呼叫裡傳入的實參列表呼叫本類另乙個的構造方法,

執行本類中另乙個構造方法時即會呼叫父類的構造方法。

3  子類構造方法中既沒有super呼叫,也沒有this呼叫,系統將會在執行子類構造方法之前,

隱式呼叫分類無引數的構造方法。

*/

構造方法中的this和super

自己第一次看完se的時候還不是很了解,這些什麼this,super,但是現在要開始找實習工作了,自己打算就把se,框架等在看一遍,也把自己看的一些整理出來 this 當前類的物件的引用 那有那些應用呢?1.區分成員變數和區域性變數 這段 我相信很多人都寫過,在setname 方法中有乙個和成員變數重...

super在建構函式中的運用

package example 在子類構造物件時,訪問子類建構函式時候,父類也執行。原因是 在子類的建構函式中第一行有乙個預設的隱式語句super 建構函式不能覆蓋 子類的例項化過程 子類中所有的建構函式預設都不能訪問父類中空引數的建構函式。通過super 來呼叫。為什麼子類例項化的時候要訪問父類中...

super呼叫超類建構函式

一 super呼叫超類建構函式 super parameter list parameter list指定超類中建構函式所需的任何形參,super 必須是在子類建構函式中執行的第乙個語句。超類定義的任何形式的建構函式都可以被super 呼叫,被執行的建構函式就是與實參相匹配的那乙個。當存在多重繼承時...