java中final关键字

134 阅读1分钟

final关键字可以用来修饰变量,方法和类,请见以下详解:

**1.**final修饰基本数据类型,初始化之后不允许再次赋值。

/**
     * final修饰基本类型变量
     */
    @Test
    public void finalBaseVariable() {
        final String finalBaseVariable = "基本数据类型";
        final_variable = "重新赋值";//编译失败
    }

2.final修饰引用类型,初始化之后不允许再次赋值,但是引用对象的内容可以修改。

/**
     * final修饰引用类型变量
     */
    public void finalReferenceVariable() {
        final List<String> finalReferenceVariables;//引用类型
        finalReferenceVariables = new ArrayList<>();
        finalReferenceVariables.add("指向的对象的内容是可以修改");
       finalReferenceVariables = new ArrayList<>(2);//引用类型赋值之后再次赋值,就会编译失败
    }

3.final修饰方法,父类中定义的final方法,不能被子类重写。

/**
     * 在父类中定义final修饰方法
     */
    class FinalMethodParent {
        public final void final_Method() {
            System.out.println("父类定义final方法");
        }
    }

    /**
    *子类试图重写父类final方法
    */
    class FinalMethodSubClass extends FinaleTest.FinalMethodParent {
        @Override
        public void final_Method() {//不允许被子类重写,编译失败
            System.out.println("子类试图重写父类的final方法");//编译失败
        }
    }

5.final修饰类,修饰的类不允许被子类继承,final中定义的方法,隐式的为final方法。

    /**
     * 继承java中String,String类被final关键字修饰
     */
    class FinalClass extends java.lang.String {////编译失败

    }