理论教育 Javafinal修饰符简要解析

Javafinal修饰符简要解析

时间:2023-11-25 理论教育 版权反馈
【摘要】:用final 修饰的类不能被继承,没有子类。用final 修饰的变量表示取值不可改变的常量。因此,声明final 变量时,必须将其初始化。final 和static 可以同时修饰成员,这是有意义的:表示该成员不依赖于类的实例,且只能赋值一次。抽象意味着必须要有继承,所以abstract 和final 任何时候都不可以同时使用。

Javafinal修饰符简要解析

final 修饰的类成员是不可改变的,它可以修饰类、方法和变量

➢ 用final 修饰的类不能被继承,没有子类。

➢ 用final 修饰的方法不能被子类的方法重写。

➢ 用final 修饰的变量表示常量,只能被赋值一次。

用final 修饰的变量表示取值不可改变的常量。因此,声明final 变量时,必须将其初始化。例如:

finaI 修饰的变量一般以大写字母命名,单词之间用“_”符号分开。

当final 修饰方法时,子类不能重写父类的方法。如果将引用类型的变量用final 修饰,那么该变量只能始终引用一个对象,但可以改变对象的内容。例如:

在程序中通过final 修饰符来定义常量,具有以下作用:

➢ 提供程序的安全性,禁止非法修改取值固定并且不允许改变的数据。

➢ 提高程序代码的可维护性。(www.daowen.com)

➢ 提供程序代码的可读性。

当final 修饰类时,表示这个类不可以有子类。(如系统提供的String 类)。为什么不可以有子类呢?因为子类可以重写父类的行为,一个类加上final 就说明它的行为已经固定了,不允许改变。一旦将对象赋给某个final 成员或变量,那么这个成员或变量就不能再指向别的对象。综上所述,需要注意以下几点:

➢ 如果一个类已经是final,再给里面的方法加上final 是没有意义的。

➢ final 和static 同时用来修饰方法的话,因为被static 修饰后不存在继承,所以这时final 是多余的。

➢ final 和static 可以同时修饰成员,这是有意义的:表示该成员不依赖于类的实例,且只能赋值一次。

➢ final 和static 可以同时修饰内部类,这是有意义的:表示该内部类不依赖于其外部类的实例,而且不可以有子类。

➢ 抽象意味着必须要有继承,所以abstract 和final 任何时候都不可以同时使用。

此外,构造方法(constructor)是一种特殊的方法,它仅在构造对象时调用,也不可以被继承。所以static,final 和abstract 都不可以用来修饰构造方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈