Closeable扩展了AutoCloseable

时间:2018-06-04 09:43:03

标签: java inheritance interface

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

public interface Closeable extends AutoCloseable 

由于 AutoCloseable 也是一个接口,java中的任何内容如何允许 扩展 呢?

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

  

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

那么,为什么会出现这种差异呢?还是我错过了什么?如果是这样,请向我解释。

3 个答案:

答案 0 :(得分:4)

如果你只是用自然语言来思考它,接口可以扩展其他接口,因为它们扩展它们给实现类的要求。它们是更具体的合同。

如果某个界面使用implements关键字来表达这个想法,那么它会让人感到困惑。 '器具'意味着提供实施'那并不是这里发生的事情。

因此:

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

答案 1 :(得分:2)

  

接口self.padding接口。extends

继承时,使用关键字implements,当类继承自类或接口继承自另一个接口时。

答案 2 :(得分:0)

对于接口,关键字extends可以被视为类的extends

这会将超级界面的功能添加到extendee