• final可以修饰类、属性、方法和局部变量。

    final的常见需求

  1. 当不希望被继承时,可以用final修饰
  2. 当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final修饰
  3. 当不希望类的某个属性的值被修改,可以用final修饰。
  4. 当不希望某个局部变量被修改,可以使用final修饰。 ```java package test;

public class final_ { public static void main(String[] args) { E e = new E(); //e.TAX_RATE = 0.09;//TAX_RATE被final修饰,无法修改,报错!!! } } //如果我们要求A类不能被其他类继承 //可以使用final修饰 A类 final class A { }

//class B extends A {}//A类有final修饰,无法继承,报错!!!

class C { //如果我们要求hi不能被子类重写 //可以使用final修饰 hi方法 public final void hi() {} } class D extends C { // @Override // public void hi() { // System.out.println(“重写了C类的hi方法..”); // } }

//当不希望类的的某个属性的值被修改,可以用final修饰 class E { public final double TAX_RATE = 0.08; }

//当不希望某个局部变量被修改,可以使用final修饰 class F { public void cry() { //这时,NUM 也称为 局部常量 final double NUM = 0.01; //NUM = 0.9;//NUM被final修饰,无法修改,报错!!! System.out.println(“NUM=” + NUM); } } ```