如果我们可以在Interface中使用默认方法和静态方法并在其他类中实现它,那么我们怎么能说该接口实现了100%抽象呢?
shuang890802 回答:当我们可以使用默认和静态方法时,接口如何提供100%抽象?
我们可以说接口实现了100%抽象吗?
我认为我们仍然可以这样说。或者至少我们可以说,接口中的static
和default
使得实现100%抽象 1 变得更加困难。
接口中的static
方法与类中的static
方法没有什么不同。在这两种情况下,方法API都是方法主体中代码的抽象边界。
我们可以为default
方法使用相同的参数。方法主体可以执行接口的所有后代的所有实例的实现所共有的操作,但是细节仍对调用方隐藏。那就是抽象边界。
default
和static
方法的作用是允许抽象边界在继承图中进一步实现。如果正确使用它们,那将是一件好事,因为它会删除冗余或重复的代码。
1-程序员应设计和实现一个API,以确保它不是泄漏的抽象。仅仅使用接口并不能解决这个问题。