原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/11/26/2789749.html
你可以将类的一些方法声明为final.使用final关键字声明方法,指示这个方法不能被子类覆盖。
Object类就是这么做的,他的一些方法就是final.
如果一个类的方法的是对象状态一致性的关键,所以它的实现不能被改变,你可能会希望创建一个方法为final的.例如,你希望让getFirstPlayer放在在类ChessAlgorithm为final:
class ChessAlgorithm { enum ChessPlayer { WHITE, BLACK } ... final ChessPlayer getFirstPlayer() { return ChessPlayer.WHITE; } ... }
构造方法调用的方法应该是声明为final,如果一个构造方法调用一个非final的方法,一个子类可能重定义这个方法,导致了一些令人吃惊的结果
注意你也可以将整个类声明为final,一个类如果是这么声明,表示它不能被继承,有时这个特性是非常有用的,例如,当创建一个不变的String类。