提供界面
interface ImplementMe {
// some other methods omitted for the question
default void methodFreeToReimplement() {
methodMustRun();
// and then the default or custom code
}
default void methodMustRun() {
// do something important
}
}
有一种方法methodMustRun()
具有默认实现,该方法必须在调用methodFreeToReimplement()
时首先运行(不必关心它们是否现在覆盖了此方法。)
此接口的实现可以随意覆盖methodFreeToReimplement()
。显然,如果他们没有选择重写此设置,则默认实现将运行methodMustRun()
。但是,如果这样做,则需要先在methodMustRun()
的任何覆盖版本中运行methodFreeToReimplement()
。
编程语言本身是否有办法(不通过粗体注释,不通过代码审查等策略)来强制执行此操作?也就是说,结果是程序符合以上要求运行,或者程序无法运行/编译。
如果这是编程语言的局限性,那么请回答“否”,然后找到一个解决方案(包括不使用接口,甚至不建议使用其他可以强制执行此操作的编程语言)。