Java中的final關(guān)鍵字和抽象類詳解
final關(guān)鍵字
可以修飾類、屬性、方法和局部變量【參數(shù)】。
使用場景
1、當(dāng)不希望 類被繼承時,可以用final修飾。比如不希望子類重寫父類時。
2、當(dāng)不希望子類重寫父類的某個方法。注意:此時不能重寫但能繼承父類此方法使用。
3、當(dāng)不希望類的某個屬性的值被修改,可以使用final修飾。一般這種屬性使用全大寫命名。
4、當(dāng)不希望某個局部變量被修改時,對參數(shù)進(jìn)行修飾。
使用細(xì)節(jié)
1、final 修飾的屬性一般稱之為常量,
2、final 修飾的屬性在定義時,必須賦初始值,并且之后不能再修改。
- 在定義屬性的時候,進(jìn)行賦值。
- 在構(gòu)造器中
- 在代碼塊中
3、當(dāng) final 修飾的屬性是靜態(tài)的,則初始化的位置只能是:
- 定義時
- 在靜態(tài)代碼塊中,注意不能在構(gòu)造器中賦值了。
4、final 修飾的類不能繼承,但是可以進(jìn)行實例化。
5、如果類不是final類,但是含有final方法,則該方法雖然不能重寫,但仍能被繼承。
6、一般如果類已經(jīng)被final修飾了,則內(nèi)部的方法就沒必要使用final了
7、final 和 static 往往搭配對屬性進(jìn)行使用,效率更高,這樣不會導(dǎo)致類加載,底層編譯器對這種修飾進(jìn)行了優(yōu)化處理。
抽象類
當(dāng)父類的一些方法不能確定時,可以用abstract關(guān)鍵字來修飾該方法,這個方法就是抽象方法,此時需將該類用 abstract 來修飾,即抽象類。
一般,抽象類會被繼承,在子類中實現(xiàn)父類中不能確定的方法。
抽象類的介紹
1、當(dāng)使用 abstract 關(guān)鍵字來修飾一個類時,這個類就叫 抽象類
2、用 abstract 關(guān)鍵字來修飾一個方法時,這個方法就是抽象方法。注意:抽象方法是沒有方法體的。
3、抽象類的價值更多的是設(shè)計,是設(shè)計者設(shè)計好后,讓子類繼承并實現(xiàn)抽象方法。
4、抽象類,一般考官在問的時候,主要在框架和設(shè)計模式使用比較多。
抽象類的使用細(xì)節(jié)
1、抽象類是不能被實例化的, 但可以使用匿名內(nèi)部類聲明。
2、抽象類不一定要包含抽象方法。
3、一旦包含了抽象方法,則這個類必須聲明為抽象類。
4、abstract 只能修飾類和方法,不能修飾屬性和其他的。
5、如果一個類繼承了抽象類,則它必須實現(xiàn)抽象類的所有抽象方法,除非它自己也聲明為abstract類。
6、抽象方法不能使用private、final、和static來修飾,因為這些關(guān)鍵字的修飾,會影響子類的重寫。
模版設(shè)計模式
需求:
1、有多個類,完成不同的任務(wù)job
2、要求能夠得到各自完成任務(wù)的時間
到此這篇關(guān)于Java中的final關(guān)鍵字和抽象類詳解的文章就介紹到這了,更多相關(guān)Java的final和抽象類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入淺出理解Java Lambda表達(dá)式之四大核心函數(shù)式的用法與范例
Lambda 表達(dá)式,也可稱為閉包,它是推動 Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。使用 Lambda 表達(dá)式可以使代碼變的更加簡潔緊湊,今天小編帶你理解Lambda表達(dá)式之四大核心函數(shù)式的用法,感興趣的朋友快來看看吧2021-11-11Mybatis foreach用法解析--對于list和array
這篇文章主要介紹了Mybatis foreach用法解析--對于list和array,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java?如何用二維數(shù)組創(chuàng)建空心菱形
這篇文章主要介紹了Java?如何用二維數(shù)組創(chuàng)建空心菱形,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03詳解Spring Security如何在權(quán)限中使用通配符
小伙伴們知道,在Shiro中,默認(rèn)是支持權(quán)限通配符的?,F(xiàn)在給用戶授權(quán)的時候,可以一個權(quán)限一個權(quán)限的配置,也可以直接用通配符。本文將介紹Spring Security如何在權(quán)限中使用通配符,需要的可以參考一下2022-06-06