final关键字

final关键字

final 关键字是一个修饰符,它可以用来修饰类、方法和变量。

  1. final 类:当一个类被声明为 final 时,它不能被其他类继承。这意味着这个类是封闭的,不能有任何子类。

    复制代码
    public final class UtilityClass {
        // 类成员
    }
    
  2. final 方法:将方法声明为 final 可以防止子类重写该方法。这通常用于定义一个类中不应该被改变的行为。

    复制代码
    public class Parent {
        public final void show() {
            System.out.println("This method cannot be overridden");
        }
    }
    
  3. final 变量:对于基本数据类型的变量,声明为 final 意味着一旦给变量赋值后,就不能被重新赋值。对于引用类型的变量,final 只能保证引用本身不可变,但是被引用的对象的内容是可以改变的,除非对象本身是不可变的。

    复制代码
    public class Test {
        public final int value = 10; // 不能重新赋值
        public final Object obj = new Object(); // 可以改变 obj 引用的对象的内容
    }
    
  4. final 参数:将方法参数声明为 final 可以防止方法内部修改参数的值。这有助于确保方法不会改变传入的参数。

    复制代码
    public void process(final int number) {
        // 方法内部不能给 number 赋新值
    }
    
  5. 匿名内部类和局部类中的构造函数:在使用匿名内部类或局部类时,构造函数是 final 的,不能被子类重写。

  6. final 在多态中的应用:当使用多态调用方法时,如果子类重写了父类的方法,并且该方法在父类中被声明为 final,则子类中的方法调用将使用父类的实现。

  7. final 在 Java 8 及以后版本中的局部变量:从Java 8开始,可以在方法中使用 final 声明的局部变量,这些变量可以被赋值一次后修改。

    复制代码
    public void updateValue(int initialValue) {
        final int value = initialValue;
        value += 5; // 合法,可以修改 final 局部变量的值
    }
    

作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   糊涂图-4060  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示