final可以修饰类、属性、方法和局部变量
可能会用到final的情况:
1)当不希望类被继承时
2)当不希望父类的某个方法被子类重写
3)当不希望类的某个属性的值被修改
4)当不希望某个局部变量被修改
细节:
1、final修饰的属性 必须赋初值(定义时、代码块、构造器)
2、如果final修饰的属性是静态的,则初始化的位置只能在定义时或者静态代码块中
3、final不能修饰构造方法
4、final和static往往搭配使用,效率更高,因为不会导致类加载,底层编译器做了优化处理
举例:
结果为:
5、包装类和String都是final修饰的