this()和super()的區別

2021-10-08 18:38:52 字數 963 閱讀 5497

this是自身的乙個物件,代表物件本身,用法大致分為以下3類:

1、普通直接引用當前物件本身

2、形參和成員名重名,用this來區分

3、引用構造方法 ,this(引數) ,應該為建構函式中的第一條語句,呼叫的事1本類中另外一種形式的構造方法。

public class demo

public static

void

main

(string[

]args)

}

super可以理解為是指向自己超(父)類物件,這個超類指的是離自己最近的乙個父類。也大致分為3中中用法

1、普通的直接引用,與this類似,只不過它是父類物件,可以通過它呼叫父類成員。

2、子類中的成員變數或方法與父類中的成員變數或方法同名,可以使用super區分。

3、引用構造方法,super(引數):呼叫父類中的某乙個構造方法(應該為構造方法中的第一條語句)

public class main extends teacher

public main()

}class teacher

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

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

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

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

super和this的區別

super 範圍 從子類找到父類中內容 屬性 直接找到父類中指定的屬性,不在子類中找 方法 直接呼叫父類的方法 構造方法 在子類構造方法的首行呼叫,表示呼叫父類的構造方法,子類中至少有乙個構造方法可以呼叫父類構造方法 this 範圍 直接找本來中的內容 屬性 如果在本類中找到了屬性,則使用本類的屬性...

this和super的區別

我不僅僅要輸出區域性範圍內的num,還要輸出成員範圍的num,怎麼辦?還要輸出父類成員範圍的num?this 和 super 的區別?this代表本類對應的引用 super代表父類儲存空間的標識 可以理解為父類引用 怎麼用?this.成員變數 呼叫本類的成員變數 super.成員變數 呼叫父類的成員...

this和super的區別

先講this和super的作用this 表示本類屬性 表示本類方法和當前物件,俏皮的說是自己用的 super 呼叫父類的構造方法,俏皮的說是爸爸專用1.this 每個類的每個非靜態方法 沒有被static修飾 都會隱含乙個this關鍵字,它指向呼叫這個方法的物件 當在方法中使用本類屬性時,都會隱含地...