重要說明:本篇為博主《面試題精選-基礎篇》系列中的一篇,查看系列面試文章請關注我。
Gitee 開源地址:https://gitee.com/mydb/interview
final 定義
final 翻譯成中文是“最終”的意思,它是 Java 中一個常見關鍵字,使用 final 修飾的對象不允許修改或替換其原始值或定義。
比如類被 final 修飾之后,就不能被其他類繼承了,如下圖所示:
final 的 4 種用法
final 的用法有以下 4 種:
- 修飾類
- 修飾方法
- 修飾變量
- 修飾參數
1.修飾類
final class Animal {
}
說明:被 final 修飾的類不允許被繼承,表示此類設計的很完美,不需要被修改和擴展。
2.修飾方法
public class FinalExample {
public final void sayHi() {
System.out.println("Hi~");
}
}
說明:被 final 修飾的方法表示此方法提供的功能已經滿足當前要求,不需要進行擴展,並且也不允許任何從此類繼承的類來重寫此方法。
3.修飾變量
public class FinalExample {
private static final String MSG = "hello";
//......
}
說明:當 final 修飾變量時,表示該變量一旦被初始化便不可以被修改。
4.修飾參數
public class FinalExample {
public void sayHi(final String name) {
System.out.println("Hi," + name);
}
}
說明:當 final 修飾參數時,表示此參數在整個方法內不允許被修改。
final 作用
使用 final 修飾類可以防止被其他類繼承,如 JDK 代碼中 String 類就是被 final 修飾的,從而防止被其他類繼承,導致內部邏輯被破壞。
String 類部分源碼如下:
總結
final 是 Java 中常見的一個關鍵字,被它修飾的對象不允許修改、替換其原始值或定義。final 有 4 種用法,可以用來修飾類、方法、變量或參數。
關注公眾號:Java面試真題解析,查看更多 Java 面試題。