面試官:說一下Final 和Final 的四種用法?
作者 | 王磊
來源 | Java中文社群(ID:javacn666)
轉(zhuǎn)載請聯(lián)系授權(quán)(微信ID:GG_Stone)
重要說明:本篇為博主《面試題精選》系列中的一篇,查看系列面試文章請關注我。Gitee 開源地址:https://gitee.com/mydb/interview
final 定義
final 翻譯成中文是“最終”的意思,它是 Java 中一個常見關鍵字,使用 final 修飾的對象不允許修改或替換其原始值或定義。
比如類被 final 修飾之后,就不能被其他類繼承了,如下圖所示:
final 的 4 種用法
final 的用法有以下 4 種:
- 修飾類
- 修飾方法
- 修飾變量
- 修飾參數(shù)
1.修飾類
- final class Animal {
- }
2.修飾方法
- public class FinalExample {
- public final void sayHi() {
- System.out.println("Hi~");
- }
- }
3.修飾變量
- public class FinalExample {
- private static final String MSG = "hello";
- //......
- }
4.修飾參數(shù)
- public class FinalExample {
- public void sayHi(final String name) {
- System.out.println("Hi," + name);
- }
- }
final 作用
使用 final 修飾類可以防止被其他類繼承,如 JDK 代碼中 String 類就是被 final 修飾的,從而防止被其他類繼承,導致內(nèi)部邏輯被破壞。
String 類部分源碼如下:
總結(jié)
final 是 Java 中常見的一個關鍵字,被它修飾的對象不允許修改、替換其原始值或定義。final 有 4 種用法,可以用來修飾類、方法、變量或參數(shù)。