防止子类覆盖父级中的方法

时间:2016-09-12 18:15:34

标签: java override final

我有一个主要课程RecordFieldBase。应用程序中有许多子类从RecordFieldBase类扩展而来。基础RecordFieldBase类公开公共方法updateInspector,它看起来像这样:

public Inspector udpateInspector {
  if () {
    return this.getBasicInspector();
  } else {
    return this.getValidationInspector();
  }
}

应用程序将在子updateInspector实例上调用RecordField以获取Inspector的实例。每个子类都可以有自定义基本和验证检查器。他们可以使用getBasicInspectorgetValidationInspector方法实现它,但它们不能覆盖基类的updateInspector,因为它包含处理逻辑。

此处是否使用final关键字?

public final Inspector udpateInspector {
  if (some check here) {
    return this.getBasicInspector();
  } else {
    return this.getValidationInspector();
  }
}

2 个答案:

答案 0 :(得分:1)

是的,这正是java为方法设置final修饰符的原因。

答案 1 :(得分:1)

是的......看看文档...

https://docs.oracle.com/javase/tutorial/java/IandI/final.html

最终方法的想法是阻止从子类中覆盖它......