【JavaSE】详解final关键字

简介: 【JavaSE】详解final关键字

在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】面向对象之封装
相关文章
|
Java 编译器
【JAVASE】类与对象 下
【JAVASE】类与对象
|
Java 编译器
【JAVASE】类与对象 中
【JAVASE】类与对象
|
存储 Java 编译器
【javaSE】 类和对象详解(下)
【javaSE】 类和对象详解(下)
|
7月前
|
存储
JavaSE&泛型
JavaSE&泛型
26 1
|
7月前
|
Java
【JavaSE】函数式接口
【JavaSE】函数式接口
35 0
【JavaSE】内部类
【JavaSE】内部类
|
存储 安全 Java
Javase ------> 泛型
Javase ------> 泛型
56 0
|
Java Android开发
【javaSE】 类和对象详解(上)
【javaSE】 类和对象详解(上)
|
存储 Java Android开发
【JAVASE】类与对象 上
【JAVASE】类与对象