final关键字

1. 前言

final作为java核心关键字之一,其重要性不言而喻。在Java中,final关键字可以用来修饰类、方法和变量。

2. final作用场景

final类

定义:当用final修饰一个类时,表明这个类不能被继承。也就是说,如果你不想一个类被继承时(如String类),就可以用final进行修饰。要注意final类中的所有成员方法都会被隐式地指定为final方法(来源:https://www.cnblogs.com/dolphin0520/p/3736238.html,个人认为一个无法被继承的类,其方法自然是无法被重写的,此处涉及到知识点:final修饰的方法是无法被重写的)。

 

应用场景:从安全性考虑,不希望此类被继承,不希望方法被重写。

 

 

final方法

定义:当用final修饰一个方法时,此方法是不能被重写的(@override);如果我们用final修饰方法,假如方法所属的类被继承,方法将不能在子类中被重写。

 

 应用场景:禁止继承的类修改此方法行为,可将方法定义为final。

PS:类中所有的private方法都隐式的指定为final的,private修饰的方法,继承时也是不可被重写的。

final变量

对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象,也就是不可更改其内存中的引用地址。

final定义的基本数据类型变量是不可被重新赋值的。

 

final 定义的成员变量不能被重新指向新的引用,但是可以修改其数据,如list数组,虽然不能被指向新的引用对象,但是可add数据。

 

参考文献

https://www.cnblogs.com/dolphin0520/p/3736238.html

posted @ 2020-07-26 14:20  傍晚的羔羊  阅读(534)  评论(0编辑  收藏  举报