据我所知,接口(interface)提供了完整的抽象,因为它不能有任何像抽象类那样的具体方法。但从 java 8 开始,接口(interface)可以使用 default 关键字拥有具体方法,并且实现该接口(interface)的类可以重写这些具体方法。 那么,接口(interface)真的提供了完整的抽象吗?
最佳答案
您仍然可以通过不编写默认方法来使接口(interface)提供完整的抽象。
不过,稍后可能需要向此接口(interface)添加新功能并确保二进制兼容性。您将使用默认方法作为抽象和灵活性之间的权衡。
实际上,设计良好的默认方法并不会带来很多具体的(依赖于实现的)东西。看一下java.util.Comparator
。我不会说 thenComparing
、naturalOrder
等方法破坏了 Java 1.2 版本引入的抽象级别。
关于java - 接口(interface)是否提供完整的抽象?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50104088/