更新時(shí)間:2020-07-03 16:13:41 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2546次
final關(guān)鍵字可以用于三個(gè)地方。用于修飾類、類屬性和類方法。
被final關(guān)鍵字修飾的類不能被繼承,被final關(guān)鍵字修飾的類屬性和類方法不能被覆蓋(重寫);
對(duì)于被final關(guān)鍵字修飾的類屬性而言,子類就不能給他重新賦值了,如果重新賦值,會(huì)報(bào)錯(cuò):
下圖所示,當(dāng)我們直接給name賦值時(shí),因?yàn)楦割愔械膎ame屬性被final修飾,所以eclipse會(huì)報(bào)錯(cuò)。但是這里有一個(gè)特別容易混淆的地方:
請(qǐng)注意,我們?cè)趎ame之前加上了一個(gè)String關(guān)鍵字,其結(jié)果是從新發(fā)定義了一個(gè)變量,雖然變量名都是name,但是在內(nèi)存中占用的區(qū)域卻不同,所以不與之沖突,不會(huì)報(bào)錯(cuò)。
接下來是在類方法前加上final關(guān)鍵字的用法。與類屬性類似,父類方法如果用final關(guān)鍵字進(jìn)行修飾,那么不能被覆蓋,但要說明一點(diǎn)的是,不能被重寫是指不能同時(shí)和和父類方法同名,同參數(shù),換句話講,只要子類中的方法與父類中的方法同名,同參數(shù)列表,即使返回值不同,仍然是屬于重寫的范疇
這里的子類方法報(bào)錯(cuò),是因?yàn)樗c父類中的print方法同名同參數(shù),即使他們返回值不同,但仍然是屬于重寫的范疇。所以這里有一個(gè)小結(jié)論:
重寫:只要子類方法與父類方法同名同參數(shù)就是重寫。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java中final關(guān)鍵字有哪些作用”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743