使用final类的作用是什么?
問(wèn)題:使用final類的作用是什么?
我在看一本關(guān)于Java的書,它里面說(shuō)你可以定義一個(gè)類為final。我搞不明白有什么地方會(huì)被用到這樣。
我是一個(gè)編程萌新。我想知道程序員在他們的程序里面都是怎么用fianl類的。如果知道他們是什么時(shí)候使用的話,我就會(huì)理解得更加深入并且知道什么時(shí)候使用它了。
如果Java是一門面向?qū)ο蟮恼Z(yǔ)言,但是又聲明了一個(gè)類為常量,那不就是和類是含有對(duì)象的特點(diǎn)這個(gè)觀點(diǎn)沖突了嗎?
回答一
The best example is
最好的例子就是:
這就是一個(gè)不變的類,不能被擴(kuò)展。當(dāng)然啦,還有一大堆聲明類為final的,使得那個(gè)類不能改變的例子
回答二
final class can avoid breaking the public API when you add new methods
當(dāng)你添加新方法時(shí),final類可以避免打破被public修飾的API
Suppose that on version 1 of your Base class you do:
假設(shè)你寫一個(gè)第一個(gè)版本的基本的類
然后客戶就這樣搞:
class Derived extends Base {public int method() { return 1; } }然后如果你想往基本版本的那個(gè)類里面加點(diǎn)方法
class Base {public String method() { return null; } }那客戶的代碼就要出問(wèn)題了
如果我們使用了一個(gè)final代替的話呢,那個(gè)客戶就不能夠繼承我們的那個(gè)類咯,方法的添加就不可能打破我們的API啦
回答三
Java里面final關(guān)鍵字通常在以下幾種情況下被使用
- Final Variables
- Final Methods
- Final Classes
在Java里面常量不能被改變,final類不能被繼承,final方法不能被重寫
文章翻譯自Stack Overflow:https://stackoverflow.com/questions/5181578/what-is-the-point-of-final-class-in-java
總結(jié)
以上是生活随笔為你收集整理的使用final类的作用是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: leetcode 1310. 子数组异或
- 下一篇: 查找满足断言的第一个元素