Java50个关键字之final

1)final用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖、类不可被继承(不能再派生出新的子类)。

final属性:被final修饰的变量不可变,由于不可变有两重含义,一是引用不可变,二是对象不可变。那么final到底指的是哪种含义呢?下面通过一个例子来进行说明。

从以上例子中可以看出,final指的是引用的不可变性,即它只能指向初始时指向的那个对象,而不关心指向对象内容的变化。所以,被final修饰的变量必须被初始化。

一般可以通过以下几种方式对其进行初始化:
①在定义的时候初始化;
②final成员变量可以在初始化块中初始化,但不可在静态初始化块中初始化;
③静态final成员变量可以在静态初始化块中初始化;
④在类的构造器中初始化,但静态final成员变量不可以在构造方法中初始化。final方法:当一个方法声明为final时,该方法不允许任何子类重写这个方法,但子类仍然可以使用这个方法。另外还有一种被称为inline(内联)的机制,当调用一个被声明为final的方法时,直接将方法主体插入到调用处,而不是进行方法调用(类似于C++语言中的inline),这样做能提高程序的效率。

final参数:用来表示这个参数在这个方法内部不允许被修改。final类:当一个类被声明为final时,此类不能被继承,所有方法都不能被重写。但这并不表示final类的成员变量也是不可改变的,要想做到final类的成员变量不可改变,必须给成员变量增加final修饰。值得注意的是,一个类不能既被声明为abstract,又被声明为final。

Original: https://www.cnblogs.com/GeniusWang/p/15915209.html
Author: Genius_Wang
Title: Java50个关键字之final

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583130/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球