Java:final关键字

首发日期:2018-03-24


final关键字:

  • final的作用:相当于使修饰的变量、方法或类“固定、最终化”,使得修饰的变量、方法、类不能再做改变【可以限制继承的重写】。
  • final可以修饰类、方法、变量。
  • final修饰的类不可以被继承。
  • final修饰的方法不可以被覆盖(重写)image
  • final修饰的变量是一个常量,final修饰的变量必须显式初始化,并且只能初始化一次。【初始化手段可以是直接声明并赋值,也可以在初始化代码块中或构造函数中赋值,或者形式参数传参】
  • final不能跟abstract interface等共存,因为final修饰的类不能被继承、重写
  • final修饰引用变量:可以修改内部数据,但不能修改指向的对象

补充:

内部类如果要使用局部变量,只能访问被final修饰的局部变量:

局部变量的生命周期与内部类不同,当局部变量被final修饰的时候,这个被final修饰的变量就变成了内部类中的数据成员

(Java采用了一种copy   local   variable(复制局部变量)的方式来实现, 也就是说把定义为final的局部变量拷贝过来用,而引用的也可以拿过来用,只是不能重新赋值。从而造成了可以access   local   variable(访问局部变量)的假象,而这个时候由于不能重新赋值, 所以一般不会造成不可预料的事情发生。)image_5ab533d8_4c16


原文地址:https://www.cnblogs.com/progor/p/8642200.html