Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 用户定义界面与内置界面_Java_Oop_Interface - Fatal编程技术网

Java 用户定义界面与内置界面

Java 用户定义界面与内置界面,java,oop,interface,Java,Oop,Interface,根据它的理解,在Java中,接口是一组相关的方法,其主体是空的。实现接口的每个类都应该提供接口中找到的每个方法的实现 但是有一些内置接口,它的方法已经有了实现,可以使用了。例如:接口枚举。它有两个方法,可以随时使用,例如hasMoreElements()和nextElement()。 请参阅以下链接: 基于对接口的理解,接口只包含空体的方法,但为什么接口枚举可以包含方法和实现 请解释一下 你搞错了 您没有使用直接接口方法。Vector类实现了枚举并提供了实现。这些方法正在被执行 你可以看到排在

根据它的理解,在Java中,接口是一组相关的方法,其主体是空的。实现接口的每个类都应该提供接口中找到的每个方法的实现

但是有一些内置接口,它的方法已经有了实现,可以使用了。例如:接口枚举。它有两个方法,可以随时使用,例如hasMoreElements()和nextElement()。 请参阅以下链接:

基于对接口的理解,接口只包含空体的方法,但为什么接口枚举可以包含方法和实现

请解释一下

你搞错了

您没有使用直接接口方法。Vector类实现了枚举并提供了实现。这些方法正在被执行

你可以看到排在这里的视频

  Enumeration days= dayNames.elements();
Vector中的方法
elements()
返回在Vector中实现的枚举实例


您可以看到提供的实现。

它们还没有“准备好使用”。在您提到的示例中,
Vector
实现了它们,而不是
Enumeration
。所以
Vector
实现了
Enumeration
接口。Vector不实现枚举。Vector的
elements()
方法返回实现枚举的类的实例。调用
System.out.println(vector.elements().getClass())
,您将看到实现枚举的类的实际名称。实现接口的对象,例如
枚举
,是-a
枚举
。当您声明对
枚举的引用时
您可以访问该接口的基础类实现。这里我有一个与vector相关的链接:该链接由vector拥有的方法列表组成,但列表中没有枚举方法。如果vector已经拥有枚举方法的实现,那么,为什么不直接使用该方法,而不是将对象提交给枚举变量。@user1980576,称为接口编程:)谷歌。