this 和super 關鍵字的區別

2021-09-25 14:48:02 字數 789 閱讀 8534

屬性的區別:this訪問本類中的屬性,如果本類沒有此屬性則從父類中繼續查詢。super訪問父類中的屬性。 

方法的區別:this訪問本類中的方法,如果本類沒有此方法則從父類中繼續查詢。super訪問父類中的方法。 

構造的區別:this呼叫本類構造,必須放在構造方法的首行。super呼叫父類構造,必須放在子類構造方法首行。 

其他區別:this表示當前物件。super不能表示當前物件 

1、this. 變數和super.變數 

this.變數 呼叫的當前物件的變數; 

super.變數 直接呼叫的是父類中的變數。 

2、this(引數)和super(引數)方法 

this(引數) 呼叫**發)的是當前類中的構造器; 

super(引數) 用於確認要使用父類中的哪乙個構造器。 

注意點: 

1)在對擁有父類的子類進行初始化時,父類的構造方法也會執行,且優先於子類的建構函式執行;因為每乙個子類的建構函式中的第一行都有一條預設的隱式語句super(); 

2)this() 和super()都只能寫在建構函式的第一行; 

3)this() 和super() 不能存在於同乙個建構函式中。第一,this()和super()都必須寫在建構函式的第一行;第二,this()語句呼叫的是當前類的另乙個建構函式而這個另乙個建構函式中必然有乙個父類的構造器,再使用super()又呼叫一次父類的構造器, 就相當於呼叫了兩次父類的構造器,編譯器不會通過; 

4)this和super不能用於static修飾的變數,方法,**塊;因為this和super都是指的是物件(例項)。

this關鍵字和super關鍵字

this關鍵字和super關鍵字都必須放在構造方法的第一行,所有兩個關鍵字不能同時存在,任選其一即可,只需保證子類的所有構造方法呼叫父類的構造方法即可 this關鍵字的應用 this關鍵字用於區分區域性變數和成員變數的同名問題 有this關鍵字的是成員變數,或者是誰呼叫我,訪問的就是誰 this關鍵...

Java中this和super關鍵字的區別

this強調的是物件的本身,通過this呼叫的屬性和方法都是它所屬於的那個類中的屬性和方法。屬於物件和類間的關係 super在子類中呼叫父類的方法和屬性。屬於子類和父類兩個類間的關係 父類 public abstract class abstractperson public abstractper...

this 和 super關鍵字

this和super關鍵字,其用法非常的相似。super用來代表父類,而this用來代表本類。this 用於呼叫本類的構造。super 用來呼叫父類的構造,必須出現在構造當中的第一行。this.用來呼叫本類的屬性和方法,可以出現在在非static的部分。super.用來呼叫父類已經父類繼承而來的的屬...