packagecom.hspedu.final_;publicclassFinal01{publicstaticvoidmain(String[] args){E e =newE();//e.TAX_RATE = 0.09;}}//如果我们要求 A 类不能被其他类继承//可以使用 final 修饰 A 类finalclassA{}//class B extends A {}classC{//如果我们要求 hi 不能被子类重写//可以使用 final 修饰 hi 方法publicfinalvoidhi(){}}classDextendsC{// @Override// public void hi() {// System.out.println("重写了 C 类的 hi 方法..");// }}//当不希望类的的某个属性的值被修改,可以用 final 修饰classE{publicfinaldoubleTAX_RATE=0.08;//常量}//当不希望某个局部变量被修改, 可以使用 final 修饰classF{publicvoidcry(){//这时, NUM 也称为 局部常量finaldoubleNUM=0.01;//NUM = 0.9;System.out.println("NUM="+NUM);}}
packagecom.hspedu.final_;publicclassFinalDetail02{publicstaticvoidmain(String[] args){System.out.println(BBB.num);//包装类,String 是 final 类, 不能被继承}}//final 和 static 往往搭配使用, 效率更高, 不会导致类加载.底层编译器做了优化处理classBBB{publicfinalstaticint num =10000;static{System.out.println("BBB 静态代码块被执行");}}finalclassAAA{//一般来说, 如果一个类已经是 final 类了, 就没有必要再将方法修饰成 final 方法//public final void cry() {}}