final总括:
1、final修饰类,类不能被继承
2、final修饰方法,方法不能被覆盖
3、final修饰变量,变量只能赋值一次
final修饰类:
没什么可说
final修饰方法:
1、构造方法不能用final修饰,因为方法的覆盖发生在父类与子类之间,子类不能覆盖父类的构造方法。
2、private修饰的方法默认是final修饰的。子类无法访问父类的private方法。
final修饰变量:
1、经由final修饰的变量,包括:静态常量、实例常量、局部常量
2、fianl变量都必须被显示的初始化。实例常量可以在定义时进行初始化,也可以在构造方法中初始化。静态常量可以在定义时初始化,也可以在静态代码块中初始化
3、final变量只能被赋值一次,在重载的构造方法中可以被赋予不同的值,因为类在加载时在调用一个构造方法,前提是在一个构造方法中不要对其他重载的构造方法进行调用
4、如果将一个引用类型的变量用final修饰,那么该变量将始终引用这一个对象,但可以改变该对象的值