为什么这些java接口没有抽象方法?浅谈Java标记接口

在jdk的源码中,存在这样的一些接口,他们不包含任何的(抽象)方法,但是却广泛的存在。

这种接口我们称之为Mark Interface,也就是标记接口。

这些接口呢,我们不用来实现任何的方法,他们的作用就是当某个类实现这个接口的时候,我们就认为这个类拥有了这个接口标记的某种功能了。

下面通过三个例子,分别介绍java中常用的三个标记接口:

RandomAccess 、Cloneable、java.io.Serializable

(1)RandomAccess 

在C#中经常会有很多人在争论,在遍历集合时,到底是应该用for还是用foreach。

在Java中,却完全不用再纠结这个问题:

java中有这样一个接口