• java final


    final关键字可以修饰变量(基本变量与引用),方法和类。

    final修饰变量

    当修饰基本变量时,表明该变量一旦被初始化为某一值就不能再被改变。

    当修饰引用类型的变量时,表示该引用一旦被初始化时指向某个对象,那么这个引用的指向就不能再改变了,但是其指向的对象的值却还是可以改变的。

    被final修饰的变量可以通过以下三种方式初始化

    在它被定义的时候

        public final int a = 10;

    在初始化块里初始化

        public final int a;
    
        // 初始化块中初始化final变量a
        {        a = 10;
        }

    在构造函数里初始化

        public final int a;
    
        // 构造器中初始化final变量a
        public FinalTest() {
            a = 20;
        }

    final修饰形参变量

    final用于修饰形参变量,表示不能在方法中更改参数的值。

        // 形参变量c与str均被final修饰
        // 在方法中不能更改c的值,也不能更改str指向的对象
        public void say(final int c, final String str) {
            c = c*2;                   // Error
            str = new String("Hello"); // Error
            System.out.println(c);
            System.out.println(str);
        }

     final修饰方法

    final修饰方法,则表明不能被子类重写(覆盖)。这样可以保证在继承中方法行为不变。父类中所有的private方法都是隐式指定为final的。对于private方法,如果我们在子类中定义一个与其完全一样的方法,也不能叫做重写,只是重写定义了一个新的方法。

    class Base {
    
        private void f(){
            System.out.println("Base.private()");
        }
        public final void g(){
            System.out.println("Base.final()");
        }
    }
    
    
    class SubBase extends Base{
    
        private void f(){
            System.out.println("OverringBase1.f()");
        }
        public  void g(){ ///Error
            System.out.println("OverringBase1.g()");
        }
    }

     final修饰类

    如果一个类被final修饰则该类不能被继承,当然此时该类中的所有的域都默认是final的。

  • 相关阅读:
    odoo14系列笔记-基本进销存(二)
    odoo14系列笔记-基本进销存(一)
    PVE另一种方法使用中科大的镜像服务器 NGINX反向代理
    git 国内加速
    VirtualBox开启套娃模式-打开嵌套 VT-x/AMD-V 功能
    K8S集群安装(基于DEIBAN,proxmox)
    JS语法 ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性
    8个非常实用的Vue自定义指令
    require和import的区别
    js异步加载之defer、async、type=module
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/9618178.html
Copyright © 2020-2023  润新知