一、特点

1、由于继承,方法可以重写,所以父类的功能就会被子类覆盖
2、有时候我们不想子类覆盖父类的功能,这时候我们可以使用final关键字
3、final可以修饰:类、变量,方法。
4、final修饰类,该类不能被继承
5、final修饰变量,该变量不能被修改,因为这个变量是常量了
6、final修饰方法,该方法不能被重写

二、案例分析

 package finals;
/**
* final关键字,案例1
* @author zhongfg
* @date 2015-06-16
*/
class Fu { public final int num = 10;
public final void secretMethod() {
System.out.println("这里是绝密文件,不能修改");
} public void show(){ }
} class Zi extends Fu { // 报错,final修饰的方法不能重写
/*public void secretMethod() {
System.out.println("我就是要修改,怎么的");
}*/ public void show() {
// num = 100; 报错,final修饰的变量不能被修改
System.out.println(num);
}
} public class FinalDemo { public static void main(String[] args) { Fu fu = new Zi();
fu.secretMethod();
fu.show();
}
} 运行结果:
这里是绝密文件,不能修改
10
 package finals;
/**
* 面试题:final修饰局部变量问题
* 基本类型:
* 基本类型的值不能改变
* 引用类型:
* 引用类型的地址值不能改变,但是该对象的堆内存地址值可以改变
* @author zhongf
* @date 2015-06-16
*/
class Student { int num = 10;
} public class FinalInterview { public static void main(String[] args) { //局部变量是基本数据类型
int x = 1;
x = 2;
System.out.println(x); final int y = 3;
// y = 4; 报错,无法为最终变量赋值
System.out.println(y); System.out.println("---------------"); //局部变量是引用数据类型
Student s = new Student();
s.num = 20;
System.out.println(s.num); final Student ss = new Student();
ss.num = 30;
System.out.println(ss.num); // ss = new Student(); 报错,无法为最终变量赋值
}
} 运行结果:
2
3
---------------
20
30

最新文章

  1. Git远程和分支管理
  2. javascript实现数据结构与算法系列:线性表的静态单链表存储结构
  3. VIM的配置文件(vimrc)在哪里?【Win7】
  4. install webapp2 on Linux outside google app engine.
  5. Winsock SPI-Socks5-SSL
  6. ECMAScript 6 proxies
  7. VMware安装Linux,系统分区。
  8. ios知识点总结——UITableView的展开与收缩及横向Table
  9. Redis的数据结构、通用操作及其特性
  10. 批量镜像locator(比如表情模板)
  11. Foundry feats. MultiverseStudio
  12. java 变量 final 小结
  13. 访问 Confluence 6 的计划任务配置
  14. 【转】单片机HEX文件完全解读
  15. ASP.NET MVC Action返回结果类型【转】
  16. 【Android】接入有米广告SDK
  17. Swift 高级运算符
  18. 【bzoj1609】[Usaco2008 Feb]Eating Together麻烦的聚餐 dp
  19. C# 接口慨述
  20. tomcat+java 占cpu 调试【top命令应用】

热门文章

  1. 【Mybatis】未封装返回结果的字段自己返回值的问题
  2. virtualenv 和apache 搭建django时注意事项
  3. DotNetBrowser入门教程(更新完善中)
  4. 2017.6.30 安装IDEA的插件mybatis plugin(破解版)
  5. 转:阿里 Weex 思路与实战(web相关)
  6. C++003基础
  7. Android 创建Listener监听器形式选择:匿名内部类?外部类?
  8. git merge 和 git rebase 小结(转)
  9. Hbase笔记3 shell命令
  10. windows 网站迁移到linux