Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可关闭扩展自动关闭_Java_Inheritance_Interface - Fatal编程技术网

Java 可关闭扩展自动关闭

Java 可关闭扩展自动关闭,java,inheritance,interface,Java,Inheritance,Interface,我最近浏览了JDK1.8的src.zip文件,发现了一些非常奇怪的东西 public interface Closeable extends AutoCloseable 既然AutoCloseable也是一个接口,那么java中的任何东西如何扩展它呢 当我尝试使用任何其他接口时,我不断收到错误消息: Runnable类型不能是userDefine类的超类;超类必须是类 那么,为什么会出现这种差异呢?还是我遗漏了什么?如果是,请给我解释一下 接口扩展接口。不实现 继承时,无论是类从类继承还是接

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

public interface Closeable extends AutoCloseable 
既然AutoCloseable也是一个接口,那么java中的任何东西如何扩展它呢

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

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

那么,为什么会出现这种差异呢?还是我遗漏了什么?如果是,请给我解释一下

接口
扩展
接口。
实现

继承时,无论是类从类继承还是接口从另一个接口继承,都可以使用关键字
extends

接口
扩展
接口。
实现


继承时,无论是类从类继承还是接口从另一个接口继承,都可以使用关键字
extends

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


这将把超级接口的功能添加到extendee

当涉及到接口时,关键字
extends
可以被视为类的
implements


这将把超级接口的功能添加到extendee

如果你仅仅从自然语言的角度考虑,接口可以扩展其他接口,因为它们扩展了它们给实现类的需求。它们是更具体的合同

如果一个接口使用
implements
关键字来表达这个想法,那么它就会令人困惑Implements的意思是“提供一个实现”,而这里并不是这样

因此:

  • 接口可以扩展接口
  • 类可以扩展类
  • 类可以实现接口

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

    如果一个接口使用
    implements
    关键字来表达这个想法,那么它就会令人困惑Implements的意思是“提供一个实现”,而这里并不是这样

    因此:

  • 接口可以扩展接口
  • 类可以扩展类
  • 类可以实现接口
  • 可能的重复可能的重复