final关键字可以用来修饰引用、方法和类。

1、用来修饰一个引用

如果引用为基本数据类型,则该引用为常量,该值无法修改;

如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。

如果引用时类的成员变量,则必须当场赋值,否则编译会报错。

例子如下所示:

final class Person {//3. 此处不赋值会报错String name ="zs";//final int age;final int age = 10;
}
public class Demo01 {public static void main(String[] args) {//1. 基本数组类型为常量,无法修改final int i = 9;//i = 10;               //2. 地址不能修改,但是对象本身的属性可以修改Person p = new Person();p.name = "lisi";final int[] arr = {1,2,3,45};arr[3] = 999;//arr = new int[]{1,4,56,78};}
}

2、用来修饰一个方法

当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。

使用final方法的原因主要有两个:

(1)把方法锁定,以防止继承类对其进行更改。

(2)效率,在早期的java版本中,会将final方法转为内嵌调用。但若方法过于庞大,可能在性能上不会有多大提升。因此在最近版本中,不需要final方法进行这些优化了。

final方法意味着“最后的、最终的”含义,即此方法不能被重写。

注意:若父类中final方法的访问权限为private,将导致子类中不能直接继承该方法,因此,此时可以在子类中定义相同方法名的函数,此时不会与重写final的矛盾,而是在子类中重新地定义了新方法。

class Person {public final void say() {System.out.println("说....");}public void eat() {System.out.println("吃...");}
}
class Teacher extends Person {//1. final修饰的方法不能被重写,但此方法仍然被继承/*@Overridepublic void say() {System.out.println("老师在一本正经的说...");}*/public void eat() {System.out.println("老师在大口大口的吃...");}
}
public class Demo02 {public static void main(String[] args) {Teacher t = new Teacher();t.say();}
}

3、用来修饰一个类

当用final修饰类时,该类成为最终类,无法被继承,该类就不能被其他类所继承。当我们需要让一个类永远不被继承,此时就可以用final修饰,但要注意:

final类中所有的成员方法都会隐式的定义为final方法。

代码实现:

/**** final用法3:修饰类,则该类成为最终类,无法被继承* @author Administrator**/
final class Person02 {    }
//class Teacher02 extends Person02 { }
//class MyString extends String{}
public class Demo03 {}

Java中final关键字的作用相关推荐

  1. Java中final关键字的作用与用法

    一.特点 1.final从字面上理解含义为"最后的,最终的". 2.final可以用来修饰变量(包括类属性.对象属性.局部变量.形参),方法(包括类方法和对象方法)以及类. 二.用 ...

  2. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  3. 【Java_基础】Java中Native关键字的作用

    本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html

  4. ACAC java中final关键字

    java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...

  5. Java中super关键字及其作用

    Java中super关键字及其作用 super关键字及其作用 A:super关键字指代父类对象引用(super代表父类存储空间的标识) B:作用: a:访问被子类隐藏的父类同名成员变量和成员方法 : ...

  6. Java中final关键字的简介说明

    下文笔者讲述java中final关键字的功能简介说明,如下所示 final关键字功能 final关键字修饰的类.方法.变量都会产生特殊的意义 如:final关键字修饰过后的类不能被子类继承final关 ...

  7. java 单独用this_以下不是Java中this关键字的作用的是()。

    [单选题]竖向荷载作用下剪力墙内力的计算,不考虑结构的连续性,可近似认为各片剪力墙只承受 [ ] [填空题(客观)]打开"开始"菜单的快捷键是 . [单选题]重载的方法需要通过形式 ...

  8. [转载] Java中final关键字

    参考链接: Java中的final关键字 文章目录 1 final关键字1.1 final修饰类1.2 final修饰方法1.3 final修饰属性---常量1.3.1 final修饰普通数据类型的成 ...

  9. Java中final关键字作用的简单分析

    final关键字可以用来修饰引用.方法和类. 一.用来修饰一个引用 如果引用为基本数据类型,则该引用为常量,该值无法修改: 如果引用为引用数据类型,如对象.数组,则该对象.数组本身可以修改,但指向该对 ...

最新文章

  1. Java中是否可以继承String类,为什么
  2. math.sqrt 有问题_JavaScript中带有示例的Math.SQRT2属性
  3. docker 实战---使用oracle xe作为开发数据库(六)
  4. ElasticHD Windows环境下安装(转载)
  5. ENVI遥感影像镶嵌
  6. python中输出语句的怎么写_python的输出语句怎么写
  7. SysTrace常识
  8. 在Excel中批量生成复选框,也支持批量打勾批量删除,#excel插件
  9. Dim Temp%的意思
  10. Android sdk platform,sdk tools,sdk Build tools,sdk platform tools 的关系
  11. Redis 持久化,写入磁盘的方式
  12. Rebranding (字典序替换 思维)
  13. Pacbio测序原理以及SMRT bell文库构建流程简述
  14. element ui 的 el-tab 当使用 router-view 时 mounted 执行了多次
  15. java 羽化_JAVA10来了 - 羽化布凉的个人空间 - OSCHINA - 中文开源技术交流社区
  16. LeetCode刷题第七天
  17. opencv读取黑白图片生成凹凸效果图
  18. Linux下面如何运行.sh文件?
  19. 洛谷P2056 采花
  20. 【论文研读】-A Parallel Smart Contract Model

热门文章

  1. c语言中integer是什么数据类型,integer是什么数据类型
  2. mysql 表名大小写转换
  3. sql 查询id重复
  4. 有助深度睡眠的MP3
  5. java 观察者模式利与弊分析
  6. Portraiture4.1智能磨皮滤镜插件下载安装使用教程
  7. Spring注入方式
  8. bootstrap刷新慢?看这里
  9. win10关闭快速启动_为什么Win10关机不彻底,按下键盘就开机还很耗电,怎么解决?...
  10. word2016打开导航——视图下导航窗格框上打勾