Java final关键词

  • final关键词的四种用法

     *
     * final 关键字:最终的、不可改变的
     *              1、可以用来修饰一个类
     *              2、可以用来修饰一个方法
     *              3、可以用来修饰一个局部变量
     *              4、可以用来修饰一个成员变量
     *
     *
     * 1、final 修饰一个类:
     * 格式:
     * public class final 类名称 {
     *     // 方法区
     * }
     * 含义:当前的类不能更改,不能有子类(太监类)
     *      不能使用一个 final 修饰的类来当父类,这个类里面的所有方法也就不能进行覆盖重写了。
     *
     *
     * 2、final 修饰一个方法:
     * 格式:
     * 修饰符 final 返回值类型 方法名称(参数列表) {
     *     // 方法体
     * }
     * 含义:该方法所在的类可以被继承(即可以是其他类的父类),
     *      但是这个方法不能给覆盖重写,用final修饰后就不可以更改了
     * 注意事项:对于类、方法来说,关键词abstract和final不能同时使用,因为会矛盾。
     *          abstract 修饰的类、方法是一定要给覆盖重写的,而 final 修饰的类是不能更改的(即不能给覆盖重写的)
     *          所以关键词abstract和final不能同时使用
     *
     *
     * 3、final 修饰一个局部变量
     * 一旦使用 final 修饰的局部变量,那么这个变量将不能进行更改,
     * "一次赋值,终生不变"
     * 注意事项:
     *          对于基本数据类型来说,不可变的是变量当中的数据值
     *          对于引用苏剧类型来说,不可变的是变量当中的地址值
     *
     *
     * 4、final 修饰一个成员变量
     * 对于成员变量来说,使用了 final 来修饰,那么这个变量同样也是不可以进行更改的,且需要马上赋值,否则无意义
     * 假如你用final修饰来一个成员变量,没有赋值,那么该成员变量的值是默认值,且不可以更改,那么定义这个成员变量就是无意义的
     * 注意事项:
     *          (1)成员变量具有默认值,所以用了final修饰后,必须手动赋值,不会再给默认值了。
     *          (2)对于final的成员变量,要么直接赋值,要么通过构造方法赋值(二者选其一)。
     *          (3)必须保证类当中所有的构造方法,最终都对final成员变量进行赋值。
     *
  • final修饰成员变量

原文地址:https://www.cnblogs.com/liyihua/p/12050591.html