第35题:怎样声明一个类不会被继承?什么场景下会用
📚 回答:
- 核心概念 :
在 Java 中,可以通过在类声明前添加final关键字来禁止该类被继承。
1. 声明方式
-
语法 :
javafinal class MyClass { // 类的内容 }- 加上
final关键字后,MyClass将无法被其他类继承。
- 加上
2. 使用场景
-
设计意图:
- 如果一个类的设计目标是提供固定的实现,且不允许子类扩展或修改其行为,则可以将其声明为
final。 - 示例:
String类是一个典型的例子,它的内容不可变,且不需要子类扩展。- 工具类(如
Math、Arrays)通常也声明为final,以确保其方法不会被重写。
- 如果一个类的设计目标是提供固定的实现,且不允许子类扩展或修改其行为,则可以将其声明为
-
性能优化:
- JVM 对
final类的方法调用可以直接内联优化,提升性能。
- JVM 对
3. 注意事项
-
限制:
final类不能被继承,因此不适合需要扩展功能的场景。- 如果一个类被声明为
final,则其所有方法默认也是final,无法被重写。
💡 面试官视角:
-
面试官可能会问"为什么要将类声明为
final?"答:为了防止类被继承或方法被重写,保证类的行为和实现不被修改,常用于工具类或核心类。 -
面试官可能会追问"
final类有哪些典型应用?"答:如String、Math等类,它们的行为是固定的,不需要也不允许扩展。
📌 专栏 :大白话说Java面试题 --- 01-Java基础篇