我最近浏览了jdk 1.8的src.zip文件,发现了一些非常奇怪的东西。
public interface Closeable extends AutoCloseable
由于 AutoCloseable 也是一个接口,java中的任何内容如何允许 扩展 呢?
当我尝试使用任何其他接口时,我不断收到错误消息:
Runnable类型不能是 userDefine Class 的超类;超类必须是一个类。
那么,为什么会出现这种差异呢?还是我错过了什么?如果是这样,请向我解释。
答案 0 :(得分:4)
如果你只是用自然语言来思考它,接口可以扩展其他接口,因为它们扩展它们给实现类的要求。它们是更具体的合同。
如果某个界面使用implements
关键字来表达这个想法,那么它会让人感到困惑。 '器具'意味着提供实施'那并不是这里发生的事情。
因此:
答案 1 :(得分:2)
接口
self.padding
接口。非extends
。
继承时,使用关键字implements
,当类继承自类或接口继承自另一个接口时。
答案 2 :(得分:0)
对于接口,关键字extends
可以被视为类的extends
。
这会将超级界面的功能添加到extendee