1. final修饰的属性又叫常量,一般用XX_XX_XX来命名
    2. final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值的位置如下:(选择一个即可)
    • 定义时:如public final double TAX_RATE = 0.08;
    • 在构造器中
    • 在代码块中
    1. 如果final修饰的属性是静态的,则初始化的位置只能是
    • 定义时
    • 在静态代码块中

    (不能在构造器中赋值)

    1. final类不能继承,但是可以实例化对象。
    2. 如果类不是final类但含有final方法,则该方法虽然不能被重写,但是可以被继承。 ```java package test;

    public class Detail { public static void main(String[] args) { CC cc = new CC(); new EE().cal(); } }

    class AA { /*

    1. 1. 定义时:如 public final double TAX_RATE=0.08;
    2. 2. 在构造器中
    3. 3. 在代码块中
    4. */
    5. public final double TAX_RATE = 0.08;//1.定义时赋值
    6. public final double TAX_RATE2;
    7. public final double TAX_RATE3;
    8. public AA() {//2.构造器中赋值
    9. TAX_RATE2 = 1.1;
    10. }
    11. {//3.在代码块赋值
    12. TAX_RATE3 = 8.8;
    13. }

    }

    class BB { / 如果final修饰的属性是静态的,则初始化的位置只能是 1 定义时 2 在静态代码块 不能在构造器中赋值。 / public static final double TAX_RATE = 99.9; public static final double TAX_RATE2;

    1. static {
    2. TAX_RATE2 = 3.3;
    3. }

    }

    //final类不能继承,但是可以实例化对象 final class CC { }

    //如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承 //即,仍然遵守继承的机制. class DD { public final void cal() { System.out.println(“cal()方法”); } }

    class EE extends DD { } ``` image.png