【JavaSE】详解final关键字

在Java中,final可以用来修饰类、方法和变量。final修饰类,表示该类无法被继承,并且此类的设计已被认为很完美而不需要进行修改或扩展。final修饰类中的方法,表示不可以被重写;也就是把该方法锁定了,以防止继承类对其进行更改。final修饰类中的变量,表示该变量一旦被初始化便不可改变。
【JavaSE】详解final关键字_第1张图片
final用来修饰一个类:此类不能被其它类继承。
【JavaSE】详解final关键字_第2张图片
final用来修饰方法 :表明此方法不可以被重写。
【JavaSE】详解final关键字_第3张图片
final用来修饰变量:此时变量就相当于常量。
【JavaSE】详解final关键字_第4张图片

final的使用注意事项

  • final修饰的属性又叫常量,一般用XX_XX来命名。
  • final修饰的属性在定义时必须赋初值,并且以后不能被修改,可以在如下位置赋初值。
    ①在定义时 ②在构造器中 ③在代码块中
    【JavaSE】详解final关键字_第5张图片
  • 如果final修饰的属性是静态的,则初始化的位置只能是在定义时或在代码块中,不能在构造器中赋初值。
    【JavaSE】详解final关键字_第6张图片
    原因是构造器只有创建对象时才会被调用,而static是在类加载时就会完成创建。如果在构造器里初始化,有可能类加载了,但是构造器没有被调用,就无法赋初值,而final修饰的属性必须赋初值。
  • final修饰的类不能被继承,但是可以实例化对象。
  • 如果不是final修饰的类,但是含有final修饰的方法,虽然该方法不能被重写,但是可以被继承。
    【JavaSE】详解final关键字_第7张图片
  • final不能修饰构造器
  • final和static往往搭配使用,不会导致类的加载,效率更高。
    【JavaSE】详解final关键字_第8张图片
    【JavaSE】详解final关键字_第9张图片
    创作不易希望各位多多支持 大家一起互相进步!
    传送门;
    个人主页
    【JavaSE】面向对象之多态
    【JavaSE】面向对象之继承
    【JavaSE】面向对象之封装

你可能感兴趣的:(Java,java,开发语言,final关键字)