在實例和關(guān)鍵字中,我們都見過this和super,關(guān)于它們的使用已經(jīng)在往期文章中有過介紹。兩者都能參與構(gòu)造方法和實例,在知識點上的聯(lián)系密不可分。
1.相同點
(1)this和super都是與實例有關(guān)的
使用this和super可以訪問實例成員和類成員(雖然通過this和super可以訪問類成員,但不建議使用)
因此this和super都不能出現(xiàn)在static方法中和static代碼塊中(類初始化器)
(2)this和super都可以用于調(diào)用構(gòu)造方法
當(dāng)通過this或super調(diào)用構(gòu)造方法時,它們必須位于構(gòu)造方法的第一行
同一個構(gòu)造方法內(nèi)部this或super不能同時出現(xiàn)
2.不同
(1)代表的對象不同:
this: 指本類調(diào)用者這個對象
super: 代表父類對象的引用
(2)前提:
this:沒有繼承也可以使用
super:只能在繼承條件才可以使用
(3)構(gòu)造方法:
this();本類的構(gòu)造方法
super();父類的構(gòu)造方法
(4)作用不同
this 的作用
一個實例變量可以通過 this. 賦值另一個實例變量;一個實例方法可以通過 this. 調(diào)用另一個實例方法;甚至一個構(gòu)造方法也可以通過 this. 調(diào)用另一個構(gòu)造方法。
super的作用
普通的直接引用,與this類似,super相當(dāng)于是指向當(dāng)前對象的父類。
子類中的成員變量或方法與父類中的成員變量或方法同名。
以上就是java中this和super的相同、不同點的解析,都為純記憶的理論知識,小伙伴們在學(xué)習(xí)的時候要牢固掌握和注意區(qū)分。更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗,課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。