大数据Java基础系列-final关键字
来源:互联网 发布:shadowsockx for mac 编辑:程序博客网 时间:2024/04/30 05:20
Java关键字final有“这是无法改变的”或者“终态的”含义,它可以用来修饰类、方法和变量。
(1)使用final修饰类,类就不可以被继承。如:
final class Father{ void talk(){ System.out.println("father talk ..."); }}class Son extends Father{}
在main方法中调用:
new Son();
编译时就会报错,如过强制运行,则会出现以下错误:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The type Son cannot subclass the final class Father
所以,如果希望类中的实现细节不被修改,并确定这个类不会扩展时,可以使用final来修饰这个类。常用的String类就是用final修饰的。
(2)使用final修饰的方法,不可以被覆盖。
class Father{ final void talk(){ System.out.println("father talk ..."); }}class Son extends Father{ void talk(){ System.out.println("son talk ..."); }}
在main方法中调用:
new Son().talk();
编译时就会报错,如过强制运行,则会出现以下错误:
Exception in thread “main” java.lang.VerifyError: class *.Son overrides final method talk.()V
如果在一个类中,希望锁定某些方法,不让任何继承类修改它的实现,就可以使用final来修饰这些方法。
(3)使用final修饰一个变量,那么这个变量只能被赋值一次。
class Son extends Father{ final int num = 30; void talk(){ num = 20; System.out.println("son talk ..."); }}
在main方法中调用:
new Son().talk();
编译时就会报错,如过强制运行,则会出现以下错误:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The final field Son.num cannot be assigned
使用final修饰的变量,一定是成员变量,一旦给定值,就不能再修改。如果某些变量的值是固定的,就可以使用final来修饰。
- 大数据Java基础系列-final关键字
- 大数据Java基础系列-static关键字
- Java基础: 关键字 final
- final关键字 -----JAVA基础-------
- Java基础----final关键字
- [Java基础] final关键字
- java基础-final关键字
- java基础--final关键字
- JAVA 基础 final关键字
- [java基础]final关键字
- Java基础--final关键字
- Java基础---final关键字
- java基础-final关键字
- java夯实基础系列:深入理解static、final关键字
- java基础之final关键字
- Java基础—关键字final
- Java 基础总结--final关键字
- JAVA基础之final关键字
- MySQL漂流记之常用(三)--varchar(20)和varchar2(20)的区别
- java 日志输出 替代 System
- surpac培训视频及配套文档
- 探索式软件测试助力软件测试人员更高效地测试
- (一)android为什么需要recovery升级?
- 大数据Java基础系列-final关键字
- [TensorFlow学习笔记2]构建训练softmax分类器
- Hadoop学习
- scrollview嵌套webView的底部出现空白和缩放冲突问题处理
- SQL数据库的一些操作
- 八、ngResource模块
- 逆向的一些思路
- sk_buff 2.6.24前后差别
- 为何与0xff进行与运算