问答题774/1053final 有什么用?

难度:
2021-11-02 创建

参考答案:

final 关键字在 Java 中用于声明常量、方法和类,具有不同的作用:

1. 修饰变量(常量)

  • 作用:当 final 用于修饰变量时,表示该变量的值不可修改。一旦被赋值,final 变量的值就不能再改变(对于基本数据类型是值不可改变,对于引用类型是引用不可改变,但对象内容可以变)。
  • 示例
    1final int x = 10; // 不能修改x的值 2final MyClass obj = new MyClass(); // obj的引用不能改变,但obj对象的内容可以修改

2. 修饰方法

  • 作用:当 final 用于修饰方法时,表示该方法不能被子类重写(override)。通常用于希望在继承体系中确保方法行为不会被修改的情况。
  • 示例
    1class Parent { 2 public final void myMethod() { 3 // 方法体 4 } 5} 6 7class Child extends Parent { 8 // 不能重写父类中的myMethod方法 9}

3. 修饰类

  • 作用:当 final 用于修饰类时,表示该类不能被继承。即没有子类可以继承该类。常用于设计不可变的类,如 String 类。
  • 示例
    1final class MyClass { 2 // 该类不能被继承 3} 4 5// 以下代码会编译错误 6class SubClass extends MyClass { } // 编译错误

4. 修饰方法参数

  • 作用:当 final 用于修饰方法的参数时,表示该参数的值在方法内不可修改。这有助于确保方法内的参数不被意外修改。
  • 示例
    1public void printMessage(final String message) { 2 // message = "new value"; // 编译错误,message不能修改 3 System.out.println(message); 4}

最近更新时间:2024-12-09