不能被繼承乙各,因為String類有final修飾符墨礁,而final修飾的類是不能被繼承的。
詳細解析:
1. 關(guān)于final修飾符
根據(jù)程序上下文環(huán)境耳峦,Java關(guān)鍵字final有“這是無法改變的”或者“終態(tài)的”含義恩静,它可以修飾非抽象類、非抽象類成員方法和變量蹲坷。你可能出于兩種理解而需要阻止改變:設(shè)計或效率驶乾。
final類不能被繼承,沒有子類循签,final類中的方法默認是final的级乐。
final方法不能被子類的方法覆蓋,但可以被繼承县匠。
final成員變量表示常量风科,只能被賦值一次撒轮,賦值后值不再改變。
final不能用于修飾構(gòu)造方法贼穆。
注意:父類的private成員方法是不能被子類方法覆蓋的题山,因此private類型的方法默認是final類型的。
如果一個類不允許其子類覆蓋某個方法故痊,則可以把這個方法聲明為final方法顶瞳。
使用final方法的原因有二:
第一、把方法鎖定愕秫,防止任何繼承類修改它的意義和實現(xiàn)慨菱。
第二、高效豫领。編譯器在遇到調(diào)用final方法時候會轉(zhuǎn)入內(nèi)嵌機制抡柿,大大提高執(zhí)行效率舔琅。
final和static的區(qū)別:
很多時候會容易把static和final關(guān)鍵字混淆等恐,static作用于成員變量用來表示只保存一份副本,而final的作用是用來保證變量不可變备蚓。