在Java中,final
关键字用于限制类、方法或变量的行为。它可以应用于不同的上下文,具体作用如下:
1. 修饰变量
当final
用于修饰变量时,表示该变量是一个常量,一旦赋值后不能再改变。
public class FinalVariableExample {
public static void main(String[] args) {
final int MAX_VALUE = 100;
// MAX_VALUE = 200; // 编译错误,因为MAX_VALUE是final变量
System.out.println(MAX_VALUE);
}
}
2. 修饰方法
当final
用于修饰方法时,表示该方法不能被子类重写(override)。
public class FinalMethodExample {
public final void display() {
System.out.println("This is a final method.");
}
}
class SubClass extends FinalMethodExample {
// public void display() { // 编译错误,因为display方法是final的
// System.out.println("This is an overridden method.");
// }
}
3. 修饰类
当final
用于修饰类时,表示该类不能被继承。
public final class FinalClassExample {
public void display() {
System.out.println("This is a final class.");
}
}
// class SubClass extends FinalClassExample { // 编译错误,因为FinalClassExample是final的
// }
4. 修饰局部变量
final
也可以用于修饰局部变量,表示该变量在初始化后不能再改变。
public class FinalLocalVariableExample {
public static void main(String[] args) {
final int localVar = 50;
// localVar = 100; // 编译错误,因为localVar是final的
System.out.println(localVar);
}
}
5. 修饰参数
final
可以用于修饰方法参数,表示该参数在方法内不能被重新赋值。
public class FinalParameterExample {
public void display(final int value) {
// value = 100; // 编译错误,因为value是final的
System.out.println(value);
}
public static void main(String[] args) {
FinalParameterExample example = new FinalParameterExample();
example.display(50);
}
}
总结
- 变量:
final
变量是常量,一旦赋值后不能改变。 - 方法:
final
方法不能被子类重写。 - 类:
final
类不能被继承。 - 局部变量:
final
局部变量在初始化后不能改变。 - 参数:
final
参数在方法内不能被重新赋值。