final 的特点
1、final 译为最终的,最后的,经常配合 public static 使用,如下:public static final String INIT_VALUE = "测试";
这里其实就可以涉及到 final 的某些特性了。
一、final 修饰类,则该类不允许被继承。(不做演示,可自行实验)
二、final 修饰方法,则该方法不允许被覆盖(重写)。(这里其实可以适当解释一下为什么final 修饰类和方法 分别不允许继承和重写,因为final是最终的意思,代表当前类或者方法已经是最终类或者方法了,所以禁止继承或重写)
三、final 修饰属性,则该类的该属性不会进行隐式的初始化,所以 该final 属性的初始化属性必须有值,或在**构造方法中赋值(但只能选其一,且必须选其一,因为没有默认值!),初始化之后就不能改了,只能赋值一次。
这个属性很容易被忽略掉,因为我们平时大多数都是利用静态来调用 final 变量,没有将类初始化出来,但是其实如果我们没有定义一个静态的final变量,我们是有一次,而且是唯一一次机会在构造方法中赋予初始化参数的。
如图,当我们想要在方法中改变变量是会发生错误的!当然,我们想要对final进行二次赋值也是不行的,编译器都无法通过!
四、final 修饰变量,则该变量的值只能赋一次值,在声明变量的时候才能赋值,即变为常量
2、final 的优势
- 本文作者: Cayden
- 本文链接: http://example.com/2020/11/24/java基础之final/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!