自创界面和就绪界面之间的区别

时间:2015-08-24 23:00:23

标签: java interface method-overriding

我对接口有疑问。

例如,当我创建一个接口时,这个接口有三种不同的抽象方法。实现此接口的类必须在类中使用这些方法为它们编写主体。但是,当我实现一个就绪接口时,我不需要为这个特定接口所具有的方法编写一个主体。例如,如果我在我的类中实现“clonable”接口,我不必为可克隆接口中定义的方法“clone”编写一个主体。为什么会这样?

感谢您的时间和兴趣。

2 个答案:

答案 0 :(得分:3)

没有方法的接口被称为" marker" Java中的接口。 SerializableCloneable接口是此类接口的示例。

引自Wikipedia page on marker interfaces

  

典型的接口指定功能(以。的形式)   方法声明)实现类必须支持一个标记   界面不需要这样做。仅存在这样的界面   表示实现类的特定行为。

另一方面,

Closeable 这样的界面: 它定义了一个close()方法,您必须实现该方法。

答案 1 :(得分:1)

如果要直接实现Closeable接口,则需要实现close()

如果您正在扩展已经实现close()的类,那么您的超类已完成合同,您无需覆盖它。

来自Oracle的文档:

  

如果您的类声称实现了一个接口,那么该接口定义的所有方法必须出现在其源代码中才能成功编译该类。

此处链接:https://docs.oracle.com/javase/tutorial/java/concepts/interface.html