一、特点

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关键字特点的更多相关文章

  1. 深入java final关键字

    Java final关键字详解:https://blog.csdn.net/kuangay/article/details/81509164 深入java final关键字 用法注意点和JVM对其进行 ...

  2. 【转载】java final 关键字的几种用法

    原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...

  3. Java——final关键字

    前言 Java中的关键字final的含义通常为"这是无法改变的".下面将介绍final用于修饰数据.方法和类的这三种情况. final数据 许多编程语言都有某种方法,来向告诉编译器 ...

  4. [java]final关键字的几种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...

  5. [java]final关键字、finally关键字与finalize()方法

    final关键字: final关键字通常指的是“无法改变的”,使用“无法改变”这样修饰可能出于两个原因:设计或者效率. final可以修饰变量.方法和类. 一.final变量 一个既是static又是 ...

  6. java final关键字详解

    final是java中保留关键字,可以声明成员变量.类.方法与本地变量,一旦引用final关键字,将不能再改变这个引用,编译器会检查代码,要是想改变该引用,会报错. final变量? 凡是对成员变量或 ...

  7. 我去,你竟然还不会用 Java final 关键字

    写一篇文章容易吗?太不容易了,首先,需要一个安静的环境,这一点就非常不容易.很多小伙伴的办公室都是开放式的,非常吵,况且上班时间写的话,领导就不高兴了:只能抽时间写.其次,环境有了,还要有一颗安静的心 ...

  8. java final 关键字醍醐灌顶

    醍醐灌顶: final 关键字,它可以修饰数据 .方法.类. 可能有些同学傻傻分不清出,这里可以快速弄懂final; final 实例域: 可以将实例域定义为final,构建对象时必须初始化这样的域, ...

  9. java final关键字与static关键字

    一  final关键字 1.final修饰类不可以被继承,但是可以继承其他类. 例如: class Yy {} final class Fu extends Yy{} //可以继承Yy类 class ...

随机推荐

  1. 【ASP.NET】 中 system.math 函数使用

    1 /* 字段 */ 2 Math.E; //2.71828182845905 3 Math.PI; //3.14159265358979 4 5 /* 静态方法 */ 6 Math.Abs; //绝 ...

  2. VUE -- ejs模板的书写

    1.EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本.可以说EJS是一个JavaScript库,EJS可以同时运行在客户端和服务器端,客户端安装直接引入文件即可,服务器端用np ...

  3. [置顶] kubernetes创建资源yaml文件例子--pod

    kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...

  4. oracle学习小知识点总结

    登陆数据库:sqlplus "/as sysdba" window身份验证,不需要用户名和密码. 查看数据库状态: select status from v$instance(v$ ...

  5. Commenting and uncommenting XML via Python

    转载: http://stackoverflow.com/questions/8764017/commenting-and-uncommenting-xml-via-python from xml.d ...

  6. golang sync.Cond 类

    众所周知,go语言在多线程方面的支持是十分完备的.在go语言sync包中提供了一个Cond类,这个类用于goroutine之间进行协作. 这个类并不复杂,只有三个函数,Broadcast() , Si ...

  7. Android Fragment 真正的完全解析

    出处: 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragmen ...

  8. 怎样设置gephi可画大规模网络图形

    (1)编辑gephi.conf 文件夹:\etc\gephi.conf 默认512MB.你能够改为22GB,约22528M # ${HOME} will be replaced by user hom ...

  9. EffectiveJava(14)在公有类中使用访问方法而非公有域

    1.公有类永远都不应该暴露可变的域.如果域是不可变的,暴露公有类的危害就要小一些. 但是,有时候需要用包级私有的或者私有的嵌套类来暴露域,无论这个类是否可变 2.如果公有类暴露了它的访问域,要想在将来 ...

  10. charles抓https包

    Charles是一款非常好用的抓包工具,有Window,Linux,Mac OS三个版本,个人觉得比shark和TCPDump好用多了. 闲话不多说,公司将服务从http转到https,导致今天因为抓 ...