【发布时间】:2016-09-13 05:24:26
【问题描述】:
我有一个主类RecordFieldBase。应用程序中有许多从RecordFieldBase 类扩展的子类。基类RecordFieldBase 公开了公共方法updateInspector,如下所示:
public Inspector udpateInspector {
if () {
return this.getBasicInspector();
} else {
return this.getValidationInspector();
}
}
应用程序将在子 RecordField 实例上调用 updateInspector 以获取 Inspector 的实例。每个子类都可以有自定义的基本和验证检查器。他们可以使用getBasicInspector 和getValidationInspector 方法来实现它,但他们不能覆盖基类的updateInspector,因为它包含处理逻辑。
在这里使用final 关键字合适吗?
public final Inspector udpateInspector {
if (some check here) {
return this.getBasicInspector();
} else {
return this.getValidationInspector();
}
}
【问题讨论】:
-
是的,这就是 final 的用途......当应用于方法时,这就是它在生活中的唯一目的。
标签: java overriding final