【问题标题】:What is the exact diff between Normal Interfaces and Marker Interfaces? [duplicate]普通接口和标记接口之间的确切区别是什么? [复制]
【发布时间】:2015-07-24 19:30:17
【问题描述】:

我对这些问题有很多困惑。可以举例说明。

我正在搜索标记接口和普通接口? 一些网站给出“接口中没有方法称为标记接口” 但有些网站也在 Marker Interface 中提供 Runnable。 但正确答案是什么?

【问题讨论】:

  • 最后... 标记接口是普通接口,与非标记接口的唯一区别是它们不提供任何方法。在这个时间点,它们看起来比以前少了,因为大多数开发人员用注释替换它们。
  • "...有些网站在 Marker Interface 中也提供 Runnable" - 这些网站不正确。

标签: java


【解决方案1】:

标记接口就像一个普通的接口,但没有任何方法。 Serializable 是一个标记接口的例子。

由于标记接口不需要实现任何方法,因此任何类都可以有implements Serializable。添加它除了将类“标记”为可序列化之外没有任何作用,因此称为“标记接口”。

不管其他网页怎么说,Runnable 不是标记接口,因为它声明了一个名为 run() 的方法。

【讨论】:

    【解决方案2】:

    Runnable 不是接口标记,因为它包含方法。
    没有任何方法的接口是标记接口。

    这就是它们被称为标记的原因,您只需使用该接口标记类
    通过让类实现它,您不会对类强加任何功能。

    【讨论】:

    • 但是有些网站给出了Marker Interface的例子?
    • @rajasekhar 当然。任何网站都可以随意声明。
    猜你喜欢
    • 2016-05-06
    • 2011-01-16
    • 1970-01-01
    • 2011-02-25
    • 2018-07-21
    • 2014-06-20
    • 2016-12-05
    • 2013-03-29
    相关资源
    最近更新 更多