1.final修饰类
可以使其不被继承(断子绝孙),一般是用于比较重要的类,防止其方法被重写
2.final修饰方法
用来保护父类的某个方法不希望被子类重写3.
3.final修饰属性
可以防止该属性被修改
public final double TAX_RATE=0.08;
修改final修饰的变量会报错
4.final修饰局部变量
final修饰局部变量可以不初始化,之后再赋值,一旦赋值就不能该了
类使用final修饰属性,不过是不能在方法体里修改其值,因为超出这个作用域它就销毁了
final注意事项和细节
1.final修饰的量一般都叫常量,规范以XXX_XXXX_XXX命名
2.final修饰属性在定义时,必须赋初始值,并且以后不能再更改,赋值可以在如下位置之一(选择一个位置赋值即可)
(1)定义时
(2)在构造器中
(3)在代码块中
3.如果final修饰的属性是静态的,2的说法要变一下
(1)定义时赋值
(2)静态代码块里赋值//不可以在构造器里赋值
4.final类不可以继承,但是可以实例化对象
5. 类里含final方法,final修饰发方法不能重写,但是类可以继承,其余没有被final修饰的也可以重写
6.一般来说如果一个类已经是final类了,没必要把里面的方法修饰为final方法
7.final不能修饰构造方法(构造器)
8.final一般和static搭配使用效率更高
当你用public static int a=8;
在类的外面调用类名.a时会导致类加载
但是当你public final static int a=8;
你在别的类用类名.a是就不会导致类的加载
9.基本数据类型的包装类Integer,Double,Float,Boolean等以及String都是final类
不可以被继承
10.final修饰局部变量可以不初始化,之后再赋值,一旦赋值就不能该了



