在Java中封装、继承和多态是面向对象编程(OOP)的三个核心概念。而final关键字可以对封装、继承和多态行为进行约束。final关键字可以用来修饰类、方法、成员变量以及局部变量。

修饰类
当用final修饰类时,此类不可被继承,即final类没有子类。使用final可以保证用户调用时动作的一致性,也可以防止子类覆盖情况的发生。
修饰方法
当用final修饰方法时,该方法不能被重写。也就是说,如果一个类继承了该方法,那么它就不能改变这个方法的实现。
对于
类、方法来说abstract关键字和final关键字不能同时使用,因为他们是矛盾的,abstract的方法必须覆盖重写,
而final的方法不能覆盖重写。
修饰类成员变量
对于成员变量来说,一旦使用final关键字修饰,其值在赋值后不能发生变化,对于引用类型的数据其内容可以发生变化。
和
局部变量的不同点在于,成员变量必须有默认值,因此必须手动赋值。
final修饰的私有成员变量可以定义的时候直接赋值,或者使用构造方法在构造方法体里面赋值,但是只能二者选其一且只能发生一次赋值行为。
final修饰的静态成员变量可以定义的时候直接赋值,或者使用静态代码块赋值,同样的只能二者选其一且只能发生一次赋值行为。
修饰局部变量
对于局部变量来说,一旦使用final关键字修饰,其值在赋值后也不能发生变化,对于引用类型的数据其内容可以发生变化。
被
final修饰的局部变量可以在定义的时候赋值,或者在局部作用域内进行赋值,同样只能二者选其一且只能发生一次赋值行为。

被折叠的 条评论
为什么被折叠?



