final关键字

一、基本用法
修饰类
表示这个类不能被继承,并且final类的所以成员方法都可以都会被隐式制定为final方法。因为final修饰类以后,导致类不能再被继承,出于安全考虑,尽量不要将类设计为final类。
修饰方法
锁定方法,防止任何继承类修改它的含义
效率。早期java版本,final方法转为内嵌调用,但方法过于庞大,看不到任何内嵌带来的性能提升。
修饰方法以后,父类的final方法不能被子类所覆盖,即此方法不能被重写,但是在一个类中,可以重载多个final修饰的方法。类的private方法被隐式制定为final方法
修饰变量
此种情况出现最多,final修饰常量,只能赋值一次,初始化后不能再发生改变,final修饰引用类型,初始化后不能再指向其他对象,但是该引用指向的对象的内容可以发生改变。
final修饰一个成员变量时,必须显示的初始化,声明时初始化,或者在构造函数中就行初始化赋值。
二、深入理解
1、类的final变量和普通变量有什么区别
类的final变量作用于成员变量时,需要在定义时或者构造器中进行初始化赋值,一旦赋值,就不能再被赋值。而普通变量则不同。
2、被final修饰的引用变量指向的对象内容是否可变
final修饰的引用变量指向的对象不能再发生改变,但是指向的对象内容可以发生改变
3、final参数
代表该参数不可改变

  

原文地址:https://www.cnblogs.com/wuhao-0206/p/12862257.html