《final关键字》
基本介绍:
final可以修饰类、属性、方法和局部变量。
在某些情况下,程序员可能有以下需求,就会使用的final
1)当不希望类被继承时,就可以用final修饰
2)当不希望父类的某个方法被子类覆盖、重写时,可以用final关键字修饰
3)当不希望类的某个属性的值被修改,可以用final修饰
4)当不希望某个局部变量被修改。
注意事项和使用细节:
1) final修饰的属性又叫常量,一般用XX_XX命名
2)final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一。
1.定义时:如 public final double TAX_RATE = 0.08;
2.在构造器中
3.在代码块中
3)如果final修饰的属性是静态的,则初始化的位置只能是
1.定义时
2.在静态代码块 (构造器中不能赋值)
4) final 类不能继承,但是可以实例化。
5)如果该类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承。即不能改,但是可以使用。
6)如果类已经是final类,就没必要再将方法修饰成final方法。(因为final方法是为了防止重写,而重写的继承是继承,final类无法被继承)
7)final 不能修饰构造方法(即构造器)
8)final 和 static 往往搭配使用,效率更高,不会导致类的加载(前提是定义时初始化),底层编译器做了优化处理。
9)包装类(Integer ,Double,Boolean,String,Float 等都是final类)不能被继承。
《final关键字》
基本介绍:
final可以修饰类、属性、方法和局部变量。
在某些情况下,程序员可能有以下需求,就会使用的final
1)当不希望类被继承时,就可以用final修饰
2)当不希望父类的某个方法被子类覆盖、重写时,可以用final关键字修饰
3)当不希望类的某个属性的值被修改,可以用final修饰
4)当不希望某个局部变量被修改。
注意事项和使用细节:
1) final修饰的属性又叫常量,一般用XX_XX命名
2)final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一。
1.定义时:如 public final double TAX_RATE = 0.08;
2.在构造器中
3.在代码块中
3)如果final修饰的属性是静态的,则初始化的位置只能是
1.定义时
2.在静态代码块 (构造器中不能赋值)
4) final 类不能继承,但是可以实例化。
5)如果该类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承。即不能改,但是可以使用。
6)如果类已经是final类,就没必要再将方法修饰成final方法。(因为final方法是为了防止重写,而重写的继承是继承,final类无法被继承)
7)final 不能修饰构造方法(即构造器)
8)final 和 static 往往搭配使用,效率更高,不会导致类的加载(前提是定义时初始化),底层编译器做了优化处理。
9)包装类(Integer ,Double,Boolean,String,Float 等都是final类)不能被继承。