首先我們先介紹以下super關鍵字與this關鍵字:
(推薦教學:java入門教學)
一、this關鍵字
this是自身的一個對象,代表對象本身,可以理解為:指向對象本身的一個指針。
this的用法在java中大體可以分為3種:
1、普通的直接引用
this相當於是指向目前物件本身。
2、形參與成員名字重名,用this來區分
3、引用本類別的建構子;
二、super關鍵字
#super可以理解為是指向自己超(父)類別物件的一個指針,而這個超類別指的是離自己最近的一個父類別。
super也有幾個用法:
1、普通的直接引用
#與this類似,super相當於是指向目前物件的父類別的引用,這樣就可以用super.xxx來引用父類別的成員。
2、子類別中的成員變數或方法與父類別中的成員變數或方法同名時,用super進行區分
(影片教學建議:java課程)
區別:
一、指涉不同
1、super:是目前物件裡面的父物件的參考。
2、this:指的是當前物件的參考
二、呼叫函數不同
1、super:呼叫基底類別中的某一個建構子(應該為構造函數中的第一條語句)。
2、this:呼叫本類中另一種形成的建構子(應該為建構子中的第一條語句)
三、引用物件不同
# 1、super:引用目前物件的直接父類別中的成員(用來存取直接父類別中被隱藏的父類別中成員資料或函數,基底類別與衍生類別中有相同成員定義)格式:super.變數名super.成員函資料名(實參)。
2、this:代表目前物件名稱(在程式中易產生二義性之處,應使用this來指明當前物件;如果函數的形參與類別中的成員資料同名,出於防止被隱藏的需求,這時需用this來指明成員變數名)。
以上是java中的super關鍵字與this關鍵字有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!