Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我们可以使用默认和静态方法时,接口如何提供100%的抽象?_Java_Oop_Interface_Abstraction - Fatal编程技术网

Java 当我们可以使用默认和静态方法时,接口如何提供100%的抽象?

Java 当我们可以使用默认和静态方法时,接口如何提供100%的抽象?,java,oop,interface,abstraction,Java,Oop,Interface,Abstraction,如果我们可以在接口中使用默认和静态方法,并在其他类中实现它,那么我们怎么能说接口实现了100%的抽象呢 我们可以说接口实现了100%的抽象吗 我想我们仍然可以这么说。或者至少我们可以说,界面中的静态和默认并不会使实现100%抽象变得更加困难1 接口中的静态方法与类中的静态方法没有区别。在这两种情况下,方法API都是方法体中代码的抽象边界 对于default方法,我们可以使用相同的参数。方法体可以执行接口的所有子代的所有实例的实现所共有的操作,但细节仍然对调用方隐藏。这就是抽象边界 default

如果我们可以在接口中使用默认和静态方法,并在其他类中实现它,那么我们怎么能说接口实现了100%的抽象呢

我们可以说接口实现了100%的抽象吗

我想我们仍然可以这么说。或者至少我们可以说,界面中的
静态
默认
并不会使实现100%抽象变得更加困难1

接口中的
静态
方法与类中的
静态
方法没有区别。在这两种情况下,方法API都是方法体中代码的抽象边界

对于
default
方法,我们可以使用相同的参数。方法体可以执行接口的所有子代的所有实例的实现所共有的操作,但细节仍然对调用方隐藏。这就是抽象边界

default
static
方法所做的是允许在继承图的更上层实现抽象边界。如果您正确地使用它们,这是一件好事,因为它可以删除冗余或重复的代码



1-由程序员来设计和实现API,使其不成为泄漏的抽象。仅仅使用界面并不能解决这个问题。

你在书/教程中读过吗?如果是,请在上下文中引用它,并查看它是否引用Java的特定版本,或者如果不相关,请提供发布日期: