终结类与终结方法
- 用final修饰的类和方法;
- 终结类不能被继承;
- 终结方法不能被子类覆盖。
终结类
-
声明ChessAlgorithm 类为final 类
final class ChessAlgorithm { . . . }
-
如果写下如下程序:
class BetterChessAlgorithm extends ChessAlgorithm { … }
编译器将会报错:
Chess.java:6: Can't subclass final classes: class ChessAlgorithm class BetterChessAlgorithm extends ChessAlgorithm { ^ 1 error
终结方法
-
final 方法举例
class Parent { public Parent() { } //构造方法 final int getPI() { return Math.PI; } //终结方法 }
-
说明
-
getPI()是用final修饰符声明的终结方法,不能在子类中对该方法进行覆盖,因而如下声明是错的:
Class Child extends Parent { public Child() {} int getPI() { return 3.14; } //错!不允许覆盖超类中的终结方法 }
-