final关键字

Posted xlwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了final关键字相关的知识,希望对你有一定的参考价值。

 final

1 final是java语言中的一个关键字。
2 final表示最终的,不可变得。
3 《重点》final修饰的变量?
final修饰的局部变量,一旦赋值,不能重新赋值。
 
4 《重点》final修饰的方法?
 final修饰的方法无法被覆盖,被重写。
 
 5 《重点》final修饰的类?
final修饰的类无法被继承
 
 6 《提示》final控制不了能不能调用的问题。final管的是啥?
 final修饰的表示最后的。不能变的,不能改的。
重点【精辟:final修饰的变量,只能赋一次值。】
 
案例1:
/*
* final
*   1 final是java语言中的一个关键字。
*   2 final表示最终的,不可变得。
*   3 《重点》final修饰的变量?
*       final修饰的局部变量,一旦赋值,不能重新赋值。
*
*   4 《重点》final修饰的方法?
*       final修饰的方法无法被覆盖,被重写。
*
*   5 《重点》final修饰的类?
*       final修饰的类无法被继承
*
*   6 《提示》final控制不了能不能调用的问题。final管的是啥?
*       final修饰的表示最后的。不能变的,不能改的。
*
*   重点【精辟:final修饰的变量,只能赋一次值。】
* */
public class FinalTest01 {
    public static void main(String[] args) {
        D d = new D();
        d.doSome();

        // 局部变量
        int i =100;
        // 重新赋值
        i = 200;

        // 局部变量
        final int k = 100;
        // 重新赋值
        // Error:(28, 9) java: 无法为最终变量k分配值
        // k = 300;

        // 初始化这个m
        final int m;
        // 重新赋值
        m = 200;
        // 二次赋值
        // Error:(38, 9) java: 可能已分配变量m
        // m = 300;

    }
}

final class A{ // A没有子孙

}

// B类继承A类,相当于对A类的功能进行扩展。如果你不希望别人对A类型进行扩展。
// 你可以给A类加一个final关键字,这样的话A类就无法继承了。
// 错误:无法从最终A进行继承
/*class B extends A{

}*/

// Error:(26, 24) java: 无法从最终java.lang.String进行继承
/*class MyString extends String{

}*/
class C{
    public final void doSome(){
        System.out.println("C‘s doSome...");
    }
}

/*Error:(39, 17) java: D中的doSome()无法覆盖C中的doSome()
  被覆盖的方法为final*/
class D extends C{
    /*public void doSome(){
        System.out.println("D‘s doSome...");
    }*/
}

 

以上是关于final关键字的主要内容,如果未能解决你的问题,请参考以下文章

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

异常和TCP通讯

异常--finally关键字

在内部片段类中使用ListView

Java之String相关内容详解(字符串和字符串常量池)面试题

代码块继承final关键字