Java中的final关键字浅析
2015-12-09 15:33
375 查看
1、修饰类的成员变量
这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修改。
![](http://img.blog.csdn.net/20151209152309222)
上面的代码对age进行初始化后就不可再次赋值,否则编译时会报类似上图的错误。
如果修饰的是引用类型的变量,那么初始化后就不能让他指向另一个对象,如下图所示
![](http://img.blog.csdn.net/20151209153300618)
2.修饰方法
用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。
注:类的private方法会隐式地被指定为final方法。
上面的Man类就会报如下的编译错误## 标题 ##
Cannot override the final method from Person
3.修饰类
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修改。
上面的代码对age进行初始化后就不可再次赋值,否则编译时会报类似上图的错误。
如果修饰的是引用类型的变量,那么初始化后就不能让他指向另一个对象,如下图所示
2.修饰方法
用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。
注:类的private方法会隐式地被指定为final方法。
[code]public class Person { public Person() { // TODO Auto-generated constructor stub } public final void show(){ } }
[code]public class Man extends Person{ public void show( ){ } }
上面的Man类就会报如下的编译错误## 标题 ##
Cannot override the final method from Person
3.修饰类
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
相关文章推荐
- Java中关于==与equals的理解
- Java回调机制
- JAVA中static方法的用法实例详解
- java爬虫之爬百度贴吧
- java中进行四舍五入
- 【java】HashMap的遍历
- JavaMail实现收发邮件(五)使用SSL实现加密传输
- 运用原生Java Api发送简单的Get请求、Post请求
- Java开发之File类
- JAVA代码规范
- WebService之Axis2快速入门: Spring与axis整合发布为WebService
- Java星期的复选运算
- java 压缩和解压lzo文件
- java 当前时间+1
- 开发中模拟器连接eclipse的一些小问题
- Java中equals和==的区别
- [转]eclipse快捷键
- JAVA反射
- 实例分析Java中public static void main(String args[])是什么意思
- HibernateTemplate 源码