在现有接口中添加方法

时间:2015-06-30 16:18:04

标签: java interface

如果我们有一个在许多类中有不同实现的接口,并且我们必须在这个接口中添加另一个新方法,谁将是解决在所有实现类中重写该方法的问题的较短方法?

2 个答案:

答案 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中的默认方法。