在 Java 类中,可以将方法定义为 final
,以标记此方法可能不会被重写:
public class Thingy {
public Thingy() { ... }
public int operationA() {...}
/** this method does @return That and is final. */
public final int getThat() { ...}
}
这是显而易见的,它可能有一些用途,以防止意外重写,或者可能的性能 & mdash; 但这不是我的问题。
我的问题是: 从面向对象的角度来看,我理解,通过定义一个方法 final
,类设计器 我保证将始终按照描述或暗示的方法工作。但是通常这可能在类作者的影响之外,如果方法所做的比交付 财产更复杂。
句法限制对我来说很清楚,但是在面向对象的意义上有什么含义呢?大多数类作者在这个意义上是否正确地使用了 final
?
final
方法承诺什么样的“合同”?