final修饰类的作用?

1 个回答

  • 戚砚笛
    时间不在乎你拥有多少,而在于你怎样使用。
    `final` 修饰类的作用就是**防止这个类被继承**。 ## 1. 语法与效果 ```java public final class MyClass { // 类的内容 } ``` * 任何其他类都不能用 `extends MyClass` 继承它。 * 否则编译器直接报错: ``` cannot inherit from final MyClass ``` ## 2. 设计目的 1. **保证类的行为不可被修改** * 防止通过继承重写方法改变原有逻辑(例如 `String` 就是 `final`,防止破坏不可变性)。 2. **提高安全性** * 核心 API 或安全相关类(如 `java.lang.System`、`java.lang.Math`)使用 `final` 避免被恶意继承篡改。 3. **提升编译器优化空间** * 因为不会被继承,方法调用可以在某些情况下更容易被内联优化。 ## 3. 常见例子 * `java.lang.String` * `java.lang.Integer` / `Long` / `Double` 等包装类 * `java.lang.Math` * `java.lang.System` ## 4. 注意点 * `final` 类中的方法**自动是 final**(因为类都不能继承了,方法自然不能被重写)。 * `final` 类**可以有子接口实现的引用**,只是类本身不能被继承。 * `final` 类**依然可以被实例化**,和普通类一样创建对象。
    发布于 2025-08-13 16:47 •IP属地 青海
    举报
    评论
    收藏