在Java中,只要是被定義為final的類,也可以說是被final修飾的類,就是不能被繼承的。
因為jdk的開發者認為,有一些最基本的類別沒要必要對開發者開放,如果使用者繼承時操作有誤,很可能引入很多問題。為了防止使用者對基本類別進行相應的擴展,也體現了java設計過程中的開閉原則,最終將這些類別設計成為final的。
這是final的規定:
當你將final用於類別身上時,一個final類別是無法被任何人繼承的,那也意味著此類在一個繼承樹中是一個葉子類,並且此類的設計已被認為很完美而不需要
進行修改或擴展。對於final類別中的成員,你可以定義其為final,也可以不是final。而對於方法,由於所屬類為final的關係,自然也就成了final型的。你也可以明確的給final
類別中的方法加上一個final,但這顯然沒有意義。
java中常見的不能被繼承的類別有如下:
String,
StringBuffer,
StringBuilder ,
基本型別的包裝類別如Double,Integer,Long
等等。
我們來看看這個String類別是如何被定義的:
#以上就是這個String類別的定義方式,我們可以明顯的看到一個final修飾符!
如果說整個類別都是final(在它的定義前冠以final關鍵字),就表示自己不希望從這個類別繼承,或者不允許其他任何人採取這種操作。換言之,基於這樣或那樣的原因,我們的類別肯定不需要進行任何改變;或者出於安全方面的理由,我們不希望進行子類化(子類處理)
推薦學習:Java影片教學
以上是java中不能繼承的類別有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!