【问题标题】:Closeable extends AutoCloseableCloseable 扩展 AutoCloseable
【发布时间】:2018-11-13 14:46:53
【问题描述】:

我最近在浏览 jdk 1.8 的 src.zip 文件,发现了一些很奇怪的东西。

public interface Closeable extends AutoCloseable 

而且由于 AutoCloseable 也是一个接口,那么 java 中的任何东西如何允许扩展 呢?

当我尝试使用任何其他界面时,我不断收到错误消息:

Runnable 类型不能是 userDefine Class 的超类;超类必须是类。

那么,为什么会出现这种差异?还是我错过了什么?如果有,请给我解释一下。

【问题讨论】:

标签: java inheritance interface


【解决方案1】:

如果您只是从自然语言的角度来考虑,接口可以扩展其他接口,因为它们扩展它们对实现类的要求。它们是更具体的合同。

如果一个接口使用implements 关键字来表达这个想法,那么它会令人困惑。 “实施”的意思是“提供实施”,这不是这里发生的事情。

因此:

  1. 接口可以扩展接口
  2. 类可以扩展类
  3. 类可以实现接口

【讨论】:

    【解决方案2】:

    接口extends 接口。 不是implements

    在继承时,您使用关键字extends,无论是当一个类从一个类继承还是一个接口从另一个接口继承时。

    【讨论】:

      【解决方案3】:

      说到接口,关键字extends可以看成是类的implements

      这会将超级接口的功能添加到扩展对象

      【讨论】:

        猜你喜欢
        • 2012-10-19
        • 1970-01-01
        • 2019-02-25
        • 2020-09-10
        • 2014-09-23
        • 2018-12-08
        • 2020-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多