Java中的final关键字

概念

final 是 Java 中的一个关键字,可以用于修饰类、方法和变量。

当一个类被声明为 final 时,它意味着该类不能被继承。

当一个方法被声明为 final 时,它意味着该方法不能被重写。

当一个变量被声明为 final 时,它意味着该变量的值不能被修改。

final饰修类

举例String类就是final修饰的,所以不能被继承,进而重写其方法

如果声明一个类为final类, 那么这个类就是最终类,不能被继承

复制代码
public final class ParentClass {
    public void happy() {
        System.out.println("高兴");
    }
}

当写一个类去继承它的时候

复制代码
public class ChildClass extends ParentClass{
 
}

就会报错错误;

注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写。

final类中的成员变量可以根据需要设为final,但是final类中的所有成员方法都会被隐式地指定为final方法。 在使用final修饰类的时候,一定要谨慎选择,除非这个类以后不会用来继承或者出于安全考虑,尽量不要将类设计为final类。

final修饰方法

当final用来修饰一个方法的时候,这个方法就是最终方法,那么很明显就是说不能被覆盖重写。

复制代码
public class ParentClass {
 
    public void happy() {
        System.out.println("高兴");
    }
    
    //用final关键字修饰的方法
    protected final void play(){
        System.out.println("开心的玩耍");
    }
 
}

我们在继承类中去看下 play()方法是不可以被override的,也就是是报错,说明 final修饰的方法,是一个最终方法,不能被子类去覆盖重写。

final修饰变量

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

  • 当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;

  • 当final修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。本质上是一回事,因为引用的值是一个地址 ,final要求值,即地址的值不发生变化。
    final修饰一个成员变量(属性),必须要显示初始化。这里有两种初始化方式,一种是在变量声明的时候初始化;第二种方法是在声明变量的时候不赋初值,但是要在这个变量所在的类的所有的构造函数中对这个变量赋初值。

    class Animal {
    private final int count = 0;
    public Animal() {
    count = 1; //报错
    final Object object = new Object();
    object = new Object(); //报错
    }
    }

相关推荐
Forget_85501 分钟前
RHEL——web应用服务器TOMCAT
java·前端·tomcat
遇见你的雩风4 分钟前
【Golang】--- Goroutine
开发语言·golang
v沙加v6 分钟前
Java Rendering Engine Unknown
java·开发语言
张3蜂6 分钟前
python知识点点亮
开发语言·python
好学且牛逼的马7 分钟前
【Hot100|26-LeetCode 21. 合并两个有序链表 - 完整解法详解】
开发语言·python
星月总相伴8 分钟前
python作用域
开发语言·python
阿里嘎多学长10 分钟前
2026-02-15 GitHub 热点项目精选
开发语言·程序员·github·代码托管
嵌入式×边缘AI:打怪升级日志15 分钟前
第十一章:主控访问多个传感器(Modbus 网关/桥接器设计)
开发语言·javascript·ecmascript
~央千澈~21 分钟前
抖音弹幕游戏开发之第10集:整合 - 弹幕触发键盘操作·优雅草云桧·卓伊凡
开发语言·python·计算机外设
Laughtin29 分钟前
macos的python安装选择以及homebrew python的安装方法
开发语言·python·macos