文档

Java™ 教程-Java Tutorials 中文版
编写 final 类和方法
Trail: Learning the Java Language
Lesson: Interfaces and Inheritance
Section: Inheritance

编写 final 类和方法

你可以声明类的一些或所有方法为 final。在方法声明中使用 final 关键字表示子类不能覆盖该方法。Object 类这样做了 — 它的一些方法是 final

如果方法具有不应更改的实现,并且对于对象的一致状态至关重要,则可能希望将方法设为 final。例如,你可能希望在此 ChessAlgorithm 类中的 getFirstPlayer 方法为 final :

class ChessAlgorithm {
    enum ChessPlayer { WHITE, BLACK }
    ...
    final ChessPlayer getFirstPlayer() {
        return ChessPlayer.WHITE;
    }
    ...
}

从构造函数调用的方法通常应该声明为 final。如果构造函数调用非 final 方法,则子类可能会重新定义该方法导致令人惊讶或不良的结果。

请注意,你还可以声明整个类 final。声明为 final 的类不能被子类化。这特别有用,例如,在创建像 String 类这样的不可变类时。


Previous page: Object as a Superclass
Next page: Abstract Methods and Classes