Java final关键字特点
一、特点
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
Java final关键字特点的更多相关文章
- 深入java final关键字
Java final关键字详解:https://blog.csdn.net/kuangay/article/details/81509164 深入java final关键字 用法注意点和JVM对其进行 ...
- 【转载】java final 关键字的几种用法
原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...
- Java——final关键字
前言 Java中的关键字final的含义通常为"这是无法改变的".下面将介绍final用于修饰数据.方法和类的这三种情况. final数据 许多编程语言都有某种方法,来向告诉编译器 ...
- [java]final关键字的几种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...
- [java]final关键字、finally关键字与finalize()方法
final关键字: final关键字通常指的是“无法改变的”,使用“无法改变”这样修饰可能出于两个原因:设计或者效率. final可以修饰变量.方法和类. 一.final变量 一个既是static又是 ...
- java final关键字详解
final是java中保留关键字,可以声明成员变量.类.方法与本地变量,一旦引用final关键字,将不能再改变这个引用,编译器会检查代码,要是想改变该引用,会报错. final变量? 凡是对成员变量或 ...
- 我去,你竟然还不会用 Java final 关键字
写一篇文章容易吗?太不容易了,首先,需要一个安静的环境,这一点就非常不容易.很多小伙伴的办公室都是开放式的,非常吵,况且上班时间写的话,领导就不高兴了:只能抽时间写.其次,环境有了,还要有一颗安静的心 ...
- java final 关键字醍醐灌顶
醍醐灌顶: final 关键字,它可以修饰数据 .方法.类. 可能有些同学傻傻分不清出,这里可以快速弄懂final; final 实例域: 可以将实例域定义为final,构建对象时必须初始化这样的域, ...
- java final关键字与static关键字
一 final关键字 1.final修饰类不可以被继承,但是可以继承其他类. 例如: class Yy {} final class Fu extends Yy{} //可以继承Yy类 class ...
随机推荐
- 【linux】linux上 查看tomcat日志文件
1.查看实时日志文件 tail -f catalina.out 2.实时查看日志文件 最后n行 tail -n -f catalina.out 3.退出tail命令 ctrl + C 4.翻页查看 日 ...
- tshop-pbsm-shop-nav-ch结构和样式分析
html结构 <div id="content" class="eshop head-expand tb-shop"> <div id=&qu ...
- 手动删除SVCH0ST.EXE的方法
最近几天在办公室的计算机上又发现了一种病毒,在进程管理器中多出了两个进程:SVCH0ST.EXE.IEXPLORE.EXE,经一番查看揭开了它们的真面目,现将清除这种病毒的方法总结如下: 病毒 ...
- VUE -- Mac上解决Chrome浏览器跨域问题
最近做前端开发总是遇到一个很奇怪的现象,同一个AJAX请求,在Chrome里调试的时候就会提示跨域,但是在手机模拟器或者真机上调试的时候就不会,于是百度了一下,发现是Chrome的安全策略导致的,需要 ...
- JAVA常见算法题(三)
package com.xiaowu.demo; //打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. //例如:153 ...
- IP头,TCP头,UDP头,MAC帧头定义
一.MAC帧头定义 /*数据帧定义,头14个字节,尾4个字节*/ typedef struct _MAC_FRAME_HEADER { char m_cDstMacAddress[6]; // ...
- CSDN日报20170413 ——《天天写业务代码的那些年,我们是怎样成长过来的》
[程序人生]天天写业务代码的那些年,我们是怎样成长过来的 作者:Phodal 比起写业务代码更不幸的是,主要工作是修 Bug , bug , buG , bUg. [Java 编程]Springboo ...
- idea 添加多模块项目
建立多模块工程先建立一个空的项目,File-Project-Maven不勾选create from archetype即可 然后再右键父工程 添加模块jar包 添加模块war包 然后再pom中配置引用 ...
- ACdreamoj 1011(树状数组维护字符串hash前缀和)
题目链接:http://acdream.info/problem? pid=1019 题意:两种操作,第一种将字符串某个位置的字符换为还有一个字符.另外一种查询某个连续子序列是否是回文串: 解法:有两 ...
- datatables插件适用示例
本文共四部分:官网 | 基本使用|遇到的问题|属性表 一:官方网站:[http://www.datatables.NET/] 二:基本使用:[http://www.guoxk.com/node/jQu ...