Java中的final关键字
final关键字的基本用法
在 java 中, final 关键字可以来 修饰类、方法和变量。下面就来详细的了解一下 final 关键字的一些基本用法。
1、修饰类
当使用 final 修饰一个类时,表示这个类不能被继承。所以在自己设计一个类时,如果不想继承则可以将类设置为 final ,一般在设计工具类时我们往往都会设计成一个 final 类,例如 JDK 中的 String 、System等。
要点:
- 被 final 修饰的类,类中的成员变量可以根据自己的实际需要设计为 final。
- 通常 final 类中的成员方法都会被隐式的指定为 final 方法。
2、修饰方法
被 final 修饰的方法不能被重写
要点:
- 一个类的 private 方法会隐式的被指定为 final 方法。
- 如果父类中有 final 修饰的方法,那么子类中不能去重写。
final修饰的方法表示此方法已经是“最后的、最终的”含义,亦即此方法不能被重写(可以重载多个final修饰的方法)。
此处需要注意的一点是:
因为重写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法同时访问控制权限为private,将会导致子类中不能直接继承到此方法,因此,此时可以在子类中定义相同的方法名和参数,此时不再产生重写与final的矛盾,而是在子类中重新定义了新的方法。
3、修饰成员变量
- 必须要赋值初始值,而且只能初始化一次
- 被 final 修饰的成员变量赋值有两种方式:
1、直接赋值
2、全部在构造方法中赋值。 - 如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。
- 如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不可以改变,但是这个引用所指向的对象里面的内容还是可以改变的。
- 当函数的参数类型声明为final时,说明该参数是只读型的。即你可以读取使用该参数,但是无法改变该参数的值。