码迷,mamicode.com
首页 > 其他好文 > 详细

final关键字

时间:2020-06-10 22:45:25      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:static   不可变   案例   nbsp   不能   问题   extends   方法   test   

 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关键字

标签:static   不可变   案例   nbsp   不能   问题   extends   方法   test   

原文地址:https://www.cnblogs.com/xlwu/p/13089748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!