【发布时间】:2011-07-29 16:38:09
【问题描述】:
在 Java 类中,可以将方法定义为 final,以标记该方法不能被覆盖:
public class Thingy {
public Thingy() { ... }
public int operationA() {...}
/** this method does @return That and is final. */
public final int getThat() { ...}
}
这很清楚,它可能对防止意外覆盖或性能有所帮助——但这不是我的问题。
我的问题是:从 OOP 的角度来看,我理解,通过定义一个方法 final 类设计器promises,该方法将始终如所描述或暗示的那样工作。但通常这可能不受类作者的影响,如果方法正在做的事情更复杂,那么只需提供一个属性。
句法约束对我来说很清楚,但是在 OOP 意义上的含义是什么?大多数班级作者在这个意义上正确使用了final吗?
final 方法承诺什么样的“契约”?
【问题讨论】: