final关键字_Java中的final关键字
我們都知道,Java是面向?qū)ο蟮恼Z言,而面向?qū)ο笥幸环N思想就是繼承。但是有時候,出于某種原因,我們不希望我們的類、方法或者變量被繼承或重寫,這個時候,我們就需要final關(guān)鍵字來幫助我們達(dá)到這種效果。
final 類
當(dāng)使用final關(guān)鍵字來標(biāo)記一個類,則表示該類不能被繼承。例如我們經(jīng)常使用的String類就被標(biāo)記為final,表明String類不能夠繼承。設(shè)想一下,如果我們可以繼承 String 類,重寫它的任何方法,并用特定 String 子類的實(shí)例替換所有 String 實(shí)例,那么對 String 對象進(jìn)行操作的結(jié)果將變得不可預(yù)測。 而且考慮到到處都在使用 String 類,因此這種繼承是不可接受的。 這就是為什么 String 類被標(biāo)記為 final。
Java中的String類
final 方法
被標(biāo)記為final的方法是不能被重寫的。當(dāng)我們設(shè)計(jì)一個類并且認(rèn)為一個方法不應(yīng)該被重寫時,我們可以將這個方法標(biāo)記為final。有時候,我們并不想把我們的整個類都標(biāo)記為final,我們只是希望它其中的部分方法不被重寫就可以,這個時候,我們可以使用final關(guān)鍵字來修飾該方法。如我們的Thread類本身并不是final的,但是getName()方法是final的。
java中Thread類的final方法
final 變量
被標(biāo)記為final的變量是不能被重新賦值的。一旦final變量被初始化,就不能被修改。
final類型修飾的變量分為以下幾種情況:
- 原始類型的final變量,例如int,long,double等,一旦初始化,是不能被修改的,否則編譯器會報錯。
- 引用類型的final變量,例如我們自定義一個final 類型的Person對象,雖然Person對象本身不能被修改,但是我們還是可以通過person.setName("chris");方法來修改Person中name的屬性值。
- final類型的變量要么是常量字段,即聲明的時候就賦一個常量值,要么只能被賦值一次,之后不能被修改。如我們通常會在一個類中聲明一個final類型的成員變量,然后在構(gòu)造方法中將該成員變量初始化一次,有些地方將這種final變量叫做final blank(final 空白)。
- final類型的形式參數(shù)。有時候,我們會把一個方法的形參設(shè)置為final的,譬如:
這表明我們不希望該形參在方法內(nèi)被修改。
總結(jié)
在本文中,我們了解了final的一些常用用法,例如final變量可以用來修飾類,方法,變量等,這在有些情況下對我們的代碼設(shè)計(jì)很有幫助。
總結(jié)
以上是生活随笔為你收集整理的final关键字_Java中的final关键字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm内存参数配置_“步步精心”-常用J
- 下一篇: 领导微信群多次辱骂同事致其自残抑郁 被判