【问题标题】:What do I win when I implement an interface which is blank? [duplicate]当我实现一个空白的接口时,我会赢得什么? [复制]
【发布时间】:2016-02-17 08:53:40
【问题描述】:

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

在我的类中实现空白(空)接口有什么用?

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

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

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

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

提前谢谢你。

【问题讨论】:

    标签: java oop interface


    【解决方案1】:

    这些接口被称为标记接口用于标记该类型的类)并且在运行时它们用于检查类型。

    例如

    在运行程序时,内部逻辑可能是这样的

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

    【讨论】:

    • ObjectOutputStreamSerializable(标记界面)+1 进行了这种检查
    • @SURESHATTA:非常感谢您的回答。我从未听说过“标记界面”这个词,这实际上是关键。我帮了大忙。
    【解决方案2】:

    这些接口仅用于不同的识别实例,请考虑:

    interface MyInterface1 {}
    interface MyInterface2 {}
    

    消费代码:

    if (foo is MyInterface1) ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-06
      • 2013-06-21
      • 2020-01-14
      • 2022-10-05
      • 2021-11-27
      • 2014-09-16
      • 2018-05-24
      • 1970-01-01
      相关资源
      最近更新 更多