final关键字详解+final与static的区别?

final关键字的引入:看看如下代码,思考dos窗口打印的结果是什么?

现在我们有一个需求,就是子类每次调用show方法时都是调用父类Fu中的show方法,那么要如何实现呢?

这个时候,final关键字就闪亮登场!

final关键字的作用

面试题1:以下代码输出结果是?

答案:编译不通过,解释在上面

面试题2:以下代码输出结果是?

答案:编译不通过,解释:final修饰引用类型时地址值不能被改变

final修饰变量的初始化时机

思考cmd窗口如此输出的原因

总结:1.被final修饰的变量只能赋值一次

           2.被final修饰的变量必须在对象构造完成前初始化,也就是必须在定义时赋值或者在构造方法中赋值。

          

static与final的区别?

有兴趣的可以看看如下代码,并思考输出结果的原因?

   

结论:每次运行程序:static修饰的引用类型的变量在内存中只有一份内存拷贝,但是final修饰的不然。

猜你喜欢

转载自blog.csdn.net/javacoder_juejue/article/details/81164293