首页 > Java > java教程 > 正文

Java语法基础中final关键字的不同用法

P粉602998670
发布: 2025-10-01 09:35:02
原创
704人浏览过
final用于限制类不可继承、方法不可重写、变量不可修改,确保代码安全稳定。

java语法基础中final关键字的不同用法

在Java中,final 是一个重要的关键字,用于限制类、方法、变量的行为。它有多种用法,每种都对应不同的语义和用途。理解这些用法有助于写出更安全、更稳定的代码。

修饰类:防止继承

final 修饰一个类时,表示这个类不能被继承。

例如:

public final class MathUtils {
    // 工具方法
}

此时,任何尝试继承 MathUtils 的操作都会导致编译错误

立即学习Java免费学习笔记(深入)”;

// 编译错误!
class MyMath extends MathUtils { }

这种设计常用于工具类或安全敏感的类(如 String 类),确保其行为不被修改。

修饰方法:防止重写

final 修饰一个方法时,子类不能重写该方法。

例如:

class Animal {
    public final void breathe() {
        System.out.println("Animal is breathing");
    }
}

class Dog extends Animal {
    // 编译错误!不能重写 final 方法
    // public void breathe() { }
}

这在设计模板方法模式时很有用,父类可以控制某些核心流程不被改变。

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手

修饰变量:值不可变

final 修饰变量时,表示该变量一旦赋值就不能再更改。

根据变量类型不同,含义略有区别

  • 基本数据类型:值不能改变
  • 引用类型:引用地址不能改变,但对象内部状态可以变

示例:

final int MAX = 100;
// MAX = 200; // 编译错误

final List list = new ArrayList();
list.add("hello"); // 允许:对象内容可变
// list = new ArrayList(); // 编译错误:引用不能变

final 变量通常用于定义常量,提升代码可读性和安全性。

修饰局部变量和参数

在方法内部,也可以将局部变量或参数声明为 final。

例如:

public void process(final String name) {
    final int timeout = 5000;
    // name = "new"; // 错误
    // timeout = 6000; // 错误
}

虽然不常见,但在匿名内部类访问外部变量时,必须是 final 或“事实上的 final”(effectively final)。

基本上就这些。final 的核心作用就是“不可变”或“不可覆盖”,合理使用能增强程序的健壮性。

以上就是Java语法基础中final关键字的不同用法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号