记录一下Java中final的作用
记录一下Java中final的作用
final关键字可以修饰类、成员变量、方法、以及方法中的局部变量。
1、final修饰类
可以使用final将类声明为final类。final类不能被继承,即不能有子类。例如:
final class A{
...
}
A就是一个final类,将不允许任何类声明成A的子类。有时候是出于一些安全性的考虑,将一些类修饰为final类。例如,Java在java.lang包中提供的String类对于编译器和解释器的正常运行有着很重要的作用,Java不允许用户程序扩展String类,为此,Java将它修饰为final类。
2、final修饰方法
如果用final修饰父类中的一个方法,那么这个方法不允许子类重写,也就是说,不允许子类隐藏可以继承的final方法(老老实实继承,不做任何篡改)。
3、final修饰变量
如果成员变量或局部变量被修饰为final,那他就是常量。由于常量在运行期间不允许再发生变化,所以常量在声明时没有默认值,这就要求程序在声明常量时指定该常量的值。
public class A {
final double PI = 3.1415926;
public double getArea(final double r){
//r = r + 1; //非法,不允许对final变量进行更新操作
return PI * r * r;
}
public final void speak(){ //该final方法不允许被重写
System.out.println("hello world");
}
}
4、final修饰的对象
final修饰的对象引用不可变,内容可变。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)