【大白话说Java面试题】【Java基础篇】第35题:怎样声明一个类不会被继承?什么场景下会用

第35题:怎样声明一个类不会被继承?什么场景下会用

📚 回答:

  • 核心概念
    在 Java 中,可以通过在类声明前添加 final 关键字来禁止该类被继承。

1. 声明方式
  • 语法

    java 复制代码
    final class MyClass {
        // 类的内容
    }
    • 加上 final 关键字后,MyClass 将无法被其他类继承。

2. 使用场景
  • 设计意图

    • 如果一个类的设计目标是提供固定的实现,且不允许子类扩展或修改其行为,则可以将其声明为 final
    • 示例:
      • String 类是一个典型的例子,它的内容不可变,且不需要子类扩展。
      • 工具类(如 MathArrays)通常也声明为 final,以确保其方法不会被重写。
  • 性能优化

    • JVM 对 final 类的方法调用可以直接内联优化,提升性能。

3. 注意事项
  • 限制

    • final 类不能被继承,因此不适合需要扩展功能的场景。
    • 如果一个类被声明为 final,则其所有方法默认也是 final,无法被重写。

    💡 面试官视角

  • 面试官可能会问"为什么要将类声明为 final?"答:为了防止类被继承或方法被重写,保证类的行为和实现不被修改,常用于工具类或核心类。

  • 面试官可能会追问"final 类有哪些典型应用?"答:如 StringMath 等类,它们的行为是固定的,不需要也不允许扩展。


📌 专栏 :大白话说Java面试题 --- 01-Java基础篇

相关推荐
SeaDhdhdhdhdh7 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
李妍.7 小时前
02Numpy基础(上)
开发语言·python
TheBestRucy7 小时前
Python 九阳神功之贰:面向对象(下)
开发语言·python
YH55269848 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站8 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
笃行3509 小时前
向量数据库单独建一套,这笔账划不划算
后端
许彰午9 小时前
03-三种开发模式
java·架构
felixking9 小时前
C++20 协程
开发语言·c++·协程
涟漪海洋9 小时前
创建最新的JDK25镜像,非root环境启动
java
weixin_431600449 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·