news 2026/4/23 21:30:19

27-Java final 关键字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
27-Java final 关键字

Java final 关键字

在本教程中,我们将通过示例学习Java final变量,final方法和final类。

在Java中,final关键字用于表示常量。它可以与变量,方法和类一起使用。

任何实体(变量,方法或类)一旦被声明final后,只能分配一次。也就是,

  • final变量不能用另一个值重新初始化

  • final方法不能被重写

  • final类不能被继承

1. Java final变量

在Java中,我们无法更改final变量的值。例如,

class Main { public static void main(String[] args) { //创建一个final变量 final int AGE = 32; //尝试更改final变量 AGE = 45; System.out.println("Age: " + AGE); } }

在上述程序中,我们创建了一个名为age的final变量。并且我们尝试更改final变量的值。

运行程序时,将出现以下错误消息,提示编译错误。

cannot assign a value to final variable AGE AGE = 45; ^

注意:建议使用大写形式在Java中声明final变量。

2. Java final方法

在了解final方法和final类之前,请确保您了解Java继承。

在Java中,该final方法不能被子类覆盖。例如,

class FinalDemo { //创建final方法 public final void display() { System.out.println("这是Final方法。"); } } class Main extends FinalDemo { //尝试重写final方法 public final void display() { System.out.println("Final方法被覆盖。"); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } }

在上面的示例中,我们创建了一个在FinalDemo类内部命名display()的final方法。在这里,Main类继承了FinalDemo类。

我们试图覆盖Main该类中的final方法。运行程序时,将出现以下错误消息,提示编译错误。

display() in Main cannot override display() in FinalDemo public final void display() { ^ overridden method is final

3. Java final类

在Java中,final类不能被另一个类继承。例如,

final class FinalClass { //创建final方法 public void display() { System.out.println("这是final方法。"); } } class Main extends FinalClass { //尝试重写final方法 public void display() { System.out.println("重写final方法"); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } }

在上面的示例中,我们创建了一个名为FinalClass的final类。在这里,我们试图通过Main类继承final类。

运行程序时,将出现以下错误消息,提示编译错误。

cannot inherit from final FinalClass class Main extends FinalClass { ^

🎁 福利时间

如果你正在备战面试或者想要学习其他知识,给大家推荐一个宝藏知识库,作者整理了一些列 Java 程序员需要掌握的核心知识,有需要的自取不谢。

知识库地址:https://farerboy.com/


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 21:27:35

柔直系统中发电机调速器与受端下垂/虚拟惯量控制对一次调频的影响研究

柔直系统中发电机调速器与受端下垂/虚拟惯量控制对一次调频的影响研究 一、引言 随着大规模新能源接入和柔性直流输电(VSC-HVDC)技术的快速发展,电力系统的频率稳定性面临新的挑战。传统交流电网中,同步发电机的旋转惯量对系统频率具有天然的支撑作用,而柔直系统的接入在…

作者头像 李华
网站建设 2026/4/23 21:24:17

TabLLM实战解析:如何用大语言模型革新表格数据的少样本分类

1. TabLLM框架的核心设计思路 表格数据分类一直是机器学习领域的特殊挑战。与图像和文本不同,表格数据缺乏空间局部性和语义连贯性,传统深度学习方法在这里往往表现平平。我在医疗数据集上做过对比实验,ResNet和Transformer在相同样本量下的准…

作者头像 李华
网站建设 2026/4/23 21:21:17

如何高效管理AI绘画插件:ComfyUI-Manager完整实战指南

如何高效管理AI绘画插件:ComfyUI-Manager完整实战指南 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custo…

作者头像 李华
网站建设 2026/4/23 21:20:29

使用零刻mini主机/群晖/Macmini 用docker部署OpenClaw喂饭级踩坑详细教程|以及多用户多Agent对接

群晖的部署遇到挺多问题的整理下给大家一个喂饭部署教程以及一些遇到的问题总结,都是这段时间一点一点部署修改得出来的一些经验,目前整理了群晖和Mac部署的,以后有零刻再更新做零刻的部署方法 黑群晖/群晖部署 先下载文件 拉取文件 先进入s…

作者头像 李华