Java final 关键词修饰类、方法、变量

时间:2021-05-19 03:57:15
1. final修饰类 
被修饰的类不能被继承,也没有子类。假如随意创建这些类的子类,子类可能会错误的修改父类的实现细节、出于安全原因,类的实现细节不允许有任何改动、在创建对象模型的时候,确信这个类不会再被扩展。注:如果对一个已经被final修饰的类进行继承操作,则会在编译的期间直接出现错误
 
2. final修饰方法
final修饰的方法表示此方法已经是“最后的、最终的”含义,亦即此方法不能被重写,(但是可以载多个final修饰的方法)。
需要注意的一点是: 重写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法的访问权限是private,将会导致子类不能直接继承到此方法,这时候再在子类中定义相同的方法名和参数,不会产生重写与final之间出现的矛盾,而是在子类中定义了新的方法。
 
3. final修饰变量
final修饰的变量表示此变量是“最后的、最终的”,一旦定义了final变量,并在首次为其显示进行了初始化之后,final修饰的变量值不可被再修改。

final修饰的变量,无论是类属性、对象属性、形参还是局部变量,这些变量都是需要进行显示初始化(即为其显示指定初始值)。

另外,无论对于基本数据类型还是引用数据类型,final修饰的变量都是首次初始化后值都不能修改。对于基本数据类型,很好理解。对于引用

数据类型,引用变量指向的是实际的对象,但其存储的是所指向对象的地址,因此,其值不能修改并不意味着其所指向的对象不能修改。