【final存在的意义】
final的中文意思:最后的,最终的。这就意味这该final是不可以改变的。在JDK中某些类的某些方法中,处于效率问题以及设计需要,不允许用户私自覆盖final修饰的方法。好比说子类继承父类,该父类中有一final修饰的方法,子类中可以继承该方法却不可以覆盖,否则,编译器就会报错。(看如下代码)
子类继承Animal的Cry(),结果可以在控制台正常输出“我会叫”
结果如下:
可是,当我选择修改Cry()方法时,你就会发现编译器报错!(子类继承父类中final修饰的方法时,该方法可以被继承,不能被修改。)
【final的用途】
①修饰变量 ☞public static final int age = 20;(final修饰的变量又叫常量,是不能被修改的)
②修饰方法 ☞public final void Cry(){}
③修饰类 ☞public final class Animal{}(final修饰的类不能被继承)
【何时用】
①出于安全考虑,类的某个方法不允许修改时;
②类不希望被继承时;
③某些变量的值不希望被修改时,例如圆周率。
【注意事项】
①final修饰的变量是常量,一般使用“XX_XX_XX”形式命名
②final修饰的变量在定义时,必须赋值,而且该值是不可以被修改的