final int num = 10;
// num = 20; // 这行代码会导致编译错误,因为 num 是 final 修饰的常量不能被重新赋值。
修饰引用类型变量:
final修饰引用类型变量时,该引用不能再指向其他对象 ,但对象本身的内容是可以改变的。
java复制代码
final StringBuilder strBuilder = new StringBuilder("Hello");
// strBuilder = new StringBuilder("World"); // 这行代码会导致编译错误,不能让 strBuilder 指向其他对象。
strBuilder.append(" World"); // 但是可以修改对象本身的内容。
修饰方法
当一个方法被final修饰时,这个方法不能在子类中被重写
确保该方法的行为在继承体系中是固定的,不会被意外修改
java复制代码
class Base {
final void someMethod() {
System.out.println("This method cannot be overridden.");
}
}
class Derived extends Base {
// 不能重写 someMethod 方法,否则会编译错误。
}
修饰类
用final修饰的类不能被继承
该类的功能是固定的,不能被扩展
java.lang.String类就是final类,以确保字符串的核心行为不会被意外改变
java复制代码
final class FinalClass {
// 类中的方法和变量等。
}
// class SubClass extends FinalClass { // 这行代码会导致编译错误,因为 FinalClass 是 final 类不能被继承。