1、final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。(什么时候使用final?)

2、final方法不能被子类的方法覆盖,但可以被继承。 2、final方法 如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。 使用final方法的原因有二: 第一、把方法锁定,防止任何继承类修改它的意义和实现。 第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。

3、final变量(常量) 用final修饰的成员变量表示常量,只能被赋值一次,并且必须要给初始值,赋值后值无法改变! final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。

从下面的例子中可以看出,一旦给final变量初值后,值就不能再改变了。 另外,final变量定义的时候,可以先声明,而不给初值,这种变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。

4、final参数 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。 注:父类的private成员方法是不能被子类方法覆盖(重写)的,因此private类型的方法默认是final类型的。 final不能用于修饰构造方法。

说白了就是用final修饰的都是只能读取,不能修改。

假如用final修饰构造方法的话,如:

1 public classa{2 public static classPeople3 {4 finalPeople(){};5 }6 public static voidmain(String[] args){7 People p = newPeople();8 }9 }

效果:

原因:前面说了父类的private成员方法是不能被子类方法覆盖(重写)的,所以子类不能直接访问父类的private的方法,即只是拥有,但是无法使用,因此private类型的方法默认是final类型的。又因为在创建子类对象时会默认调用父类的构造方法,所以说将父类的构造方法调用final是没有任何意义的。

java final被覆盖_java中的final的使用相关推荐

  1. java final修改器_Java中的“ final”关键字如何工作?(我仍然可以修改对象。)...

    小编典典 这是一个最喜欢的面试问题.带着这些问题,访问者试图找出你对对象的构造,方法,类变量(静态变量)和实例变量的理解程度. import java.util.ArrayList; import j ...

  2. java隐藏与覆盖_java中方法的隐藏和覆盖问题?

    ok()方法在继承时候发生覆盖(重写)了吗? 发生了.在子类B中的ok()方法拥有父类方法相同的方法名和参数列表(signature),所以在这里发生了重写.调用B类对象的ok()方法会print & ...

  3. java+中的final关键字有哪些用法_Java中的Final关键字用法汇总及简单示例

    可能使用到final的情况有3种:数据.方法和类. 一.final数据 对于基本类型,final使数值恒定不变:而对于对象引用,final使引用恒定不变.一旦引用被初始化指向一个对象,就无法把它改为指 ...

  4. java final 详解_java中Final详解

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  5. java中final详解_Java中final用法与详解

    Java中final用法与详解 final作为Java中经常用到的关键字,了解final的使用方法是非常有必要的.这里从final关键字在数据域.方法和类中三个方面分析final关键字的主要用法. f ...

  6. JAVA的final类有哪些_Java中的final类

    下面列举几个Java包中的final类(): 1.java.lang包(列举所有final类) 包装类:Boolean,Character,Short,Integer,Long,Float,Doubl ...

  7. java 不同包子类 覆盖_Java中不同方法的覆盖方法

    经过测试 覆盖的好处是能够定义特定于子类类型的行为,这意味着子类可以根据其要求实现父类方法. 用面向对象的术语来说,覆盖是指覆盖现有方法的功能. 示例class Animal { public voi ...

  8. java构造器详解_Java中关于构造器的使用详解

    这篇文章主要介绍了Java构造器使用方法及注意事项的相关资料,这里举例说明如何使用构造器及需要注意的地方,需要的朋友可以参考下 Java构造器使用方法及注意事项 超类的构造器在子类的构造器运行之前运行 ...

  9. java的string类_Java中的String类笔记

    说明 源码 //jdk8 public final class String implements java.io.Serializable, Comparable, CharSequence { / ...

最新文章

  1. vip能ping通,但80不通的解决方法
  2. sass @function,@for,@mixin 的应用
  3. 发现自己的BLOG被转载了
  4. plsql执行command命令控制台出现乱码_展现“管理员”的神级能力,有趣又实用的我的世界基础命令...
  5. Little Alchemy 游戏 - 扒答案。。 Java
  6. oracle拓展磁盘空间,Oracle磁盘空间使用统计
  7. java 编辑二进制文件_java写二进制文件,不能直接编辑,该怎么操作?
  8. 他是哈佛计算机博士,却成落魄画家,后逆袭为硅谷创业之父 |人物志
  9. 转Openstack Ceilometer监控项扩展
  10. 删除曾经使用过的USB设备记录
  11. matlab三机九节点,matlab三机九节点电力系统仿真(带程序).doc
  12. 徽州区数字城管平台智慧管理城市
  13. 北京大学公开课重磅来袭!欢迎走进「AI for Science」课堂
  14. #创新应用#飞流下载:下载娱乐两不误
  15. 单片机模拟输出PPM信号
  16. 狐狸文│区块链不是用来讲故事的
  17. Internet RFC 诞生五十周年;互联网信息服务投诉平台上线
  18. 设置py文件在pycharm里的工作环境/路径
  19. Failed to compile编译失败
  20. WIN7 | 网络正常,但网页打不开 | 远程计算机或设备不接受连接

热门文章

  1. MaxCompute - ODPS重装上阵 第五弹 - SELECT TRANSFORM
  2. 使用NAT网关轻松为单台云服务器设置多个公网IP
  3. 腾讯花85亿买岛;微信发原图或泄露位置信息?高通逼因特尔把Modem芯片业务卖给苹果?小米9官网正式下架……...
  4. 分布式事务方案这么多,到底应该如何选型?
  5. python vlookup 模糊_如何用python写excel中的vlookup函数?
  6. mysql 别名 metadata_获取数据库元数据:DatabaseMetaData与ParameterMetaData与ResultSetMetaData...
  7. 2分钟 Docker 部署 SprinBoot 集成 Flowable 工作流引擎
  8. Linux环境 Oracle 监听和服务 日常操作
  9. 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
  10. (需求实战_04)_定时压缩昨天指定文件并删除