Java为什么要使用默认方法?

示例

简单的答案是,它允许您在不破坏现有实现的情况下发展现有接口。

例如,你有20年前发布的 Swim 接口。

public interface Swim {

    void backStroke();

}

我们做得很好,我们的接口非常流行,全世界有很多实现,您无法控制他们的源代码。

public class FooSwimmer implements Swim {

    public void backStroke() {

         System.out.println("Do backstroke");

    }

}

20年后,您已决定向该接口添加新功能,但由于我们的接口将破坏现有的实现,因此它似乎已冻结。

幸运的是,Java 8引入了名为Default方法的全新功能。

现在,我们可以向Swim接口添加新方法。

public interface Swim {

    void backStroke();

    default void sideStroke() {

        System.out.println("Default sidestroke implementation. Can be overridden");

    }

}

现在,我们接口的所有现有实现仍然可以使用。但最重要的是,他们可以在自己的时间内实现新添加的方法。

这一变化的最大原因之一,也是它最大的用途之一,是在Java集合框架中。Oracle无法将foreach方法添加到现有的Iterable接口,而不中断实现Iterable的所有现有代码。通过添加默认方法,现有的Iterable实现将继承默认实现。

以上是 Java为什么要使用默认方法? 的全部内容, 来源链接: utcz.com/z/315861.html

回到顶部