final关键字的使用细节
- final修饰的属性又叫常量,一般用XX_XX_XX来命名,全大写
- final修饰的属性在定义时,必须赋初值,并且以后不能再修改,可以在一下位置赋值
1、定义时 2、在构造器中 3、在代码块中
- 如果final修饰的属性是静态的,则初始化的位置只能在定义时或静态代码块中
- final类不能被继承,但是能够实例化对象
- 如果类不是final类,但是含有final方法,则该方法不可以被重写,但可以被继承
- final不能修饰构造方法
- 当一个类被final修饰后,其方法就没必要再用final修饰了
- final与static往往搭配使用,效率更高,不会导致类加载,底层编译器做了优化处理(再搭配修饰类的属性时,调用该属性并不会加载该类)
- 包装类(Integer、Double、Float、Boolean等都是final类),String也是final类,不可被继承
static关键字的使用细节
被static修饰的方法/属性 可以被继承,但不能被重写
接口中的静态方法因为不能被重写,所以可以不被实现,默认方法可以被实现,也可以不实现