当我实现一个空白的接口时,我会赢得什么?

Ori*_*er7 7 java oop interface

我有一个关于Java中"接口"的问题,问题听起来像这样:

在我的课程中实现空白(空)界面有什么用?

为了更好地理解这个问题,我将举一个具体的例子:

如果你去看看" ArrayList "类的实现,你会发现它实现了两个接口(RandomAccess和Cloneable),它们实际上是空的!

为什么会这样?通过为我的课程实现一个完全空白的界面,我能获得什么?

如果您有任何想法,请发表评论.

先感谢您.

Sur*_*tta 7

这些接口称为标记接口(用于标记该类型的类),在运行时它们用于检查类型.

对于前者

在运行程序时,内部逻辑可能就像

if (yourList instanceof Cloneable) {
        // Hey this object is of type Clonable, please proceed 
    } else {
        // Not that type. Reject
    }
Run Code Online (Sandbox Code Playgroud)

  • `ObjectOutputStream`对`Serializable`(标记接口)+1进行了这种检查 (2认同)