如果我们有一个在许多类中有不同实现的接口,并且我们必须在这个接口中添加另一个新方法,谁将是解决在所有实现类中重写该方法的问题的较短方法?
答案 0 :(得分:6)
您可以查看default methods。我们的想法是在界面中提供默认实现。请记住,这仅适用于Java 8+。如果您在旧版本的Java中执行此操作,则除了在实现该接口的所有类中实现该方法之外别无选择。
使用默认方法,Oracle能够解决将新的流/ lambda方法添加到集合API所涉及的向后兼容性问题。
答案 1 :(得分:1)
在接口中添加新方法时,需要在所有类中实现此方法,这将实现您的接口。
在Java 8中,您可以通过实现来创建default
方法。例如:
interface YourInterface {
default void method() {
// do something
}
}
class YourClass implements YourInterface {
public static void main(String[] args) {
YourClass yourClass = new YourClass();
yourClass.method();
}
}
您可以阅读Oracle Tutorials中的默认方法。