为什么必须将接口“声明”为抽象的?
不是。
public abstract interface Interface {
\___.__/
|
'----> Neither this...
public void interfacing();
public abstract boolean interfacing(boolean really);
\___.__/
|
'----> nor this, are necessary.
}
接口及其方法是隐式的abstract
,添加该修饰符没有区别。
还有其他适用于抽象接口的规则吗?
不,适用相同的规则。该方法必须由任何(具体)实现类来实现。
如果抽象已经过时,为什么它包含在Java中?有抽象接口的历史吗?
有趣的问题。我挖出了第一 JLS的版本,甚至还有它说:“这个修改是过时的,不应该在新的Java程序中使用”。
好的,进一步挖掘 …碰到许多断开的链接后,我设法找到了原始的Oak 0.2 规范(或“手册”)的副本。我必须说非常有趣的阅读,总共只有38页!:-)
在第5节“接口”下,它提供以下示例:
public interface Storing {
void freezeDry(Stream s) = 0;
void reconstitute(Stream s) = 0;
}
边上说
将来,接口中声明方法的“ = 0”部分可能会消失。
假设=0
被abstract
关键字替换,我怀疑abstract
接口方法在某些时候是必需的!