Java final关键字
final 关键字可以 修饰
类、变量、方法
。
final可以翻译为最终的,不可变的
1.final 修饰类
被final修饰的类不可以被继承
如果确定这个类不想被其它类继承,那么使用final关键字修饰就好
如果要继承一个被final修饰的类,IDE就会报出 无法从最终的’demo01.Father’继承 的错误。
2.final 修饰变量
被final修饰的变量不可以被修改,且只能被赋值一次
局部变量
修改一个被final修饰的局部变量,IDE会报出 无法为最终变量“ x”分配值 的错误。
成员变量
直接赋值
使用构造方法进行赋值(两种方式)
【tips】
被final修饰的变量,不论使用哪种方式,都只能被赋值一次,且赋值后,变为只读状态,不可更改
3.final 修饰方法
被final修饰的方法不可以被子类重写
如果要子类要重写一个被final修饰的类,IDE就会报出 'num()‘无法覆盖’demo01.Father’中的’num()’;覆盖的方法是最终的 的错误。
4.扩展知识
被final修饰的对象地址值是不可变的,但是对象中指向的内容是可以改变的。
class Student{ int num = 5; } public class Demo02 { public static void main(String[] args) { final Student s = new Student(); System.out.println(++s.num);//打印结果为:6 } }