转自:
Java final关键字的功能:
java中的final
关键字的功能:
用于禁止用户修改变量或重写一个类或方法
当final
关键字修饰变量时,没有值的final
变量为空白变量或未初始化的最终变量。 此变量只能在构造函数中初始化。
1. Java final变量
当一个变量设置为final
,则无法修改final
变量的值(常量)
final关键字应用场景:
- 禁止变量的值被改变;
- 禁止方法重写;
- 禁止类继承;
final变量的示例
禁止修改变量值的示例分享
class Car{
final int limit= 120;// final 修饰变量
void ChangeLimit() {
limit= 200;
}
public static void main(String args[]) {
Car obj = new Car();
obj.ChangeLimit();
}
}
-----编译以上代码,将出现相应的错误信息----
[编译错误]Compile Time Error
2. Java final方法
如果任何方法声明为final
,则不能覆盖它。
final
方法的示例,下面方法是不能覆盖的 -
class parentClass{
final void printInfo() {
System.out.println("print parentClass");
}
}
class subClass extends parentClass{
void printInfo() { // final方法,不可以重写
System.out.println("printInfo subClass");
}
public static void main(String args[]) {
subClass t= new subClass();
t.printInfo();
}
}
-----编译以上代码,将出现相应的错误信息----
[编译错误]Compile Time Error
3. Java final类
如果把任何一个类声明为final
,则不能扩展它。final
类的示例
final class parentClass{
}
class subClass extends parentClass{ // 不可以扩展 final 类
void printInfo() {
System.out.println("print subClass");
}
public static void main(String args[]) {
subClass obj= new subClass();
obj.run();
}
}
----编译以上代码,将出现以下错误信息------
[编译错误]Compile Time Error
final关键字注意事项:
1.当一个类使用final修饰符,则此类禁止继承
2.当final修饰符修饰方法后,此方法可被继承使用,但是不能覆盖修改
3.final修饰符修饰变量后,变量只能在构造函数上初始化,其它地方禁止修改