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