在Java中,final可以用来修饰类、方法和变量。final修饰类,表示该类无法被继承,并且此类的设计已被认为很完美而不需要进行修改或扩展。final修饰类中的方法,表示不可以被重写;也就是把该方法锁定了,以防止继承类对其进行更改。final修饰类中的变量,表示该变量一旦被初始化便不可改变。
final用来修饰一个类:此类不能被其它类继承。
final用来修饰方法 :表明此方法不可以被重写。
final用来修饰变量:此时变量就相当于常量。
final的使用注意事项
- final修饰的属性又叫常量,一般用XX_XX来命名。
- final修饰的属性在定义时必须赋初值,并且以后不能被修改,可以在如下位置赋初值。
①在定义时 ②在构造器中 ③在代码块中
- 如果final修饰的属性是静态的,则初始化的位置只能是在定义时或在代码块中,不能在构造器中赋初值。
原因是构造器只有创建对象时才会被调用,而static是在类加载时就会完成创建。如果在构造器里初始化,有可能类加载了,但是构造器没有被调用,就无法赋初值,而final修饰的属性必须赋初值。 - final修饰的类不能被继承,但是可以实例化对象。
- 如果不是final修饰的类,但是含有final修饰的方法,虽然该方法不能被重写,但是可以被继承。
- final不能修饰构造器
- final和static往往搭配使用,不会导致类的加载,效率更高。
创作不易希望各位多多支持 大家一起互相进步!
传送门;
个人主页
【JavaSE】面向对象之多态
【JavaSE】面向对象之继承
【JavaSE】面向对象之封装