最近,我正在浏览JDK1.8的src.zip文件,发现了一些很奇怪的东西。
public interface Closeable extends AutoCloseable
既然AutoCloseable也是一个接口,那么java中的任何东西如何允许扩展呢?
当我尝试使用任何其他接口时,我总是收到错误消息:
Runnable类型不能是userDefine类的超类;超类必须是类。
那么,为什么会有这种差异呢?还是我漏掉了什么?如果是的话,请向我解释。
发布于 2018-06-04 01:48:53
如果您只是从自然语言的角度来考虑,接口可以扩展其他接口,因为它们扩展了它们对实现类的需求。它们是比较具体的合同。
如果一个接口使用implements
关键字来表达这个想法,那么它将是令人困惑的。‘'Implements’意思是‘提供一个实现’,而这不是这里正在发生的事情。
因此:
发布于 2018-06-04 01:44:22
接口接口而不是
implements
。
在继承时,可以使用关键字extends
,无论是从类继承类还是从另一个接口继承接口时。
发布于 2018-06-04 01:44:32
当涉及到接口时,关键字extends
可以被视为类的implements
。
这将将超级接口的能力添加到扩展程序中。
https://stackoverflow.com/questions/50677648
复制相似问题