java - 接口(interface)是否提供完整的抽象?如何?

标签 java oop interface abstraction default-method

据我所知,接口(interface)提供了完整的抽象,因为它不能有任何像抽象类那样的具体方法。但从 java 8 开始,接口(interface)可以使用 default 关键字拥有具体方法,并且实现该接口(interface)的类可以重写这些具体方法。 那么,接口(interface)真的提供了完整的抽象吗?

最佳答案

您仍然可以通过不编写默认方法来使接口(interface)提供完整的抽象。

不过,稍后可能需要向此接口(interface)添加新功能并确保二进制兼容性。您将使用默认方法作为抽象和灵活性之间的权衡。

实际上,设计良好的默认方法并不会带来很多具体的(依赖于实现的)东西。看一下java.util.Comparator。我不会说 thenComparingnaturalOrder 等方法破坏了 Java 1.2 版本引入的抽象级别。

关于java - 接口(interface)是否提供完整的抽象?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50104088/

相关文章:

java - 无法在本地主机中运行 Java 小程序

java - 在 String str1 =new String ("abc"中创建了多少个实例)?

java - 为什么Java接口(interface)可以在这些代码中被实例化?

Java将看起来像Array的String转换成String Array或String ArrayList

java - 如何使用来自 Firebase 查询的信息填充 Android ListView

PHP 类的私有(private)属性和方法

c++ - 如何在运行时确定消息类型?

java - 如何通过 OOP 打印多个值而不用在 Java 中添加它们

java - 初始化接口(interface)类型的变量时,初始化语句中属于该类的非接口(interface)方法会怎样?

c# - 接口(interface)作为c#中方法的参数