在Java中,final关键字有以下几种用法:
1. final修饰变量:使用final修饰的变量是一个常量,一旦被赋值后就不能再改变。常量一般使用大写字母命名。例如:
final int MAX_VALUE = 100;
2. final修饰方法:使用final修饰的方法不能被子类重写。例如:
public class Parent {
public final void print() {
System.out.println("Parent's print method");
}
}
public class Child extends Parent {
// 编译报错,无法重写父类的final方法
// public void print() {
// System.out.println("Child's print method");
// }
}
3. final修饰类:使用final修饰的类不能被继承。例如:
public final class FinalClass {
// 类的内容
}
// 编译报错,无法继承final类
// public class ChildClass extends FinalClass {
// // 子类的内容
// }
4. final修饰形参:使用final修饰的形参在方法内部不能被修改。例如:
public void print(final String message) {
// 编译报错,无法修改final形参
// message = "Hello, world!";
System.out.println(message);
}
5. final修饰引用变量:使用final修饰的引用变量不能再指向其他对象,但是对象本身的值可以修改。例如:
final StringBuilder builder = new StringBuilder("Hello");
builder.append(", world!"); // 可以修改对象的值
// 编译报错,无法再指向其他对象
// builder = new StringBuilder("Goodbye");