强制执行接口以首先运行方法

时间:2018-07-26 03:26:32

标签: java interface

提供界面

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()

编程语言本身是否有办法(不通过粗体注释,不通过代码审查等策略)来强制执行此操作?也就是说,结果是程序符合以上要求运行,或者程序无法运行/编译。

如果这是编程语言的局限性,那么请回答“否”,然后找到一个解决方案(包括不使用接口,甚至不建议使用其他可以强制执行此操作的编程语言)。

0 个答案:

没有答案