更新時間:2020-07-03 16:13:41 來源:動力節(jié)點 瀏覽2633次
final關(guān)鍵字可以用于三個地方。用于修飾類、類屬性和類方法。
被final關(guān)鍵字修飾的類不能被繼承,被final關(guān)鍵字修飾的類屬性和類方法不能被覆蓋(重寫);
對于被final關(guān)鍵字修飾的類屬性而言,子類就不能給他重新賦值了,如果重新賦值,會報錯:
下圖所示,當(dāng)我們直接給name賦值時,因為父類中的name屬性被final修飾,所以eclipse會報錯。但是這里有一個特別容易混淆的地方:
請注意,我們在name之前加上了一個String關(guān)鍵字,其結(jié)果是從新發(fā)定義了一個變量,雖然變量名都是name,但是在內(nèi)存中占用的區(qū)域卻不同,所以不與之沖突,不會報錯。
接下來是在類方法前加上final關(guān)鍵字的用法。與類屬性類似,父類方法如果用final關(guān)鍵字進(jìn)行修飾,那么不能被覆蓋,但要說明一點的是,不能被重寫是指不能同時和和父類方法同名,同參數(shù),換句話講,只要子類中的方法與父類中的方法同名,同參數(shù)列表,即使返回值不同,仍然是屬于重寫的范疇
這里的子類方法報錯,是因為他與父類中的print方法同名同參數(shù),即使他們返回值不同,但仍然是屬于重寫的范疇。所以這里有一個小結(jié)論:
重寫:只要子類方法與父類方法同名同參數(shù)就是重寫。
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java中final關(guān)鍵字有哪些作用”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀