重新思考 Java 中的静态接口方法
传统上,在 Java 接口中定义静态方法是被禁止的。然而,Java 8 取消了这一限制,允许接口同时拥有静态方法和具体实例方法。本文深入探讨了先前禁令背后的技术原因,并阐明了当前允许的理由。
接口中的静态方法
最初,将静态方法包含在接口不被认为是高优先级的语言更改。由于不可预见的复杂性,随后在 Java 7 中添加它们的提议被放弃。然而,随着 Java 8 lambda 表达式支持的出现,引入了静态接口方法以及可重写的实例方法。
重写静态方法
尽管接口可以现在有静态方法,它们不能被覆盖。这是因为:
构造函数接口
虽然 Java 语言禁止在接口中强制执行类似构造函数的方法,但使用具体类可以实现类似的功能。通过在创建新实例时要求对具体类型进行显式命名,编译器可以确保该类符合所需的要求。
结论
Java 接口中的静态方法提供了一种定义类级功能和实用程序的便捷机制。但是,由于静态方法解析的性质,不支持重写子类中的静态方法。在接口中强制执行类似于构造函数的方法虽然很诱人,但并不是确保实现之间一致性的合适设计模式。
以上是为什么不能重写 Java 接口中的静态方法?的详细内容。更多信息请关注PHP中文网其他相关文章!