关于java语言中final关键字:
1、final关键字,表示最终的,不可变的
2、final修饰的类无法继承
3、final修饰的方法无法被覆盖 可以继承
4、final修饰的局部变量【方法中】一旦赋值之后,不可重新赋值
5、final修饰的成员变量【类内方法外、无static】必须“显示的”初始化
所有对象中带final的成员变量值都相同,所以没有必要作为成员变量再堆内存中占据内存,一般加static变为实例变量,储存在方法区内存中例如【public static final int a = 10;】
6、final修饰的实例变量【类内方法外、带static】例如【public static final int PI = 3.14;】,必须手动赋值,不能采用系统默认值
final修饰的实例变量,一般和static联合使用,被称为**【常量】**,java规范中要求所有的常量大写 。
常量:值不可再改变的变量
7、final修饰的引用,一旦指向某个对象之后,不能再指向其他对象,那么被指向发对象无法被垃圾回收器回收。
final修饰的引用虽然指向某个对象之后不能指向其他对象,但是所指向的对象内部的内存是可以修改的。
补充
抽象类不能被final修饰,
抽象方法不能被final修饰
既final和abstract不能共存