小编典典

Java抽象接口

all

考虑一个例子(在java中编译)

public abstract interface Interface {
    public void interfacing();
    public abstract boolean interfacing(boolean really);
}

为什么有必要将接口“声明”为抽象的?是否有其他适用于抽象接口的规则?


最后:如果abstract已经过时,为什么要包含在 Java 中?抽象接口有历史吗?


阅读 63

收藏
2022-06-21

共1个答案

小编典典

为什么有必要将接口“声明”为抽象的?

它不是。

public abstract interface Interface {
       \___.__/
           |
           '----> Neither this...

    public void interfacing();
    public abstract boolean interfacing(boolean really);
           \___.__/
               |
               '----> nor this, are necessary.
}

接口及其方法是隐式的abstract,添加该修饰符没有区别。

是否有其他适用于抽象接口的规则?

不,同样的规则适用。该方法必须由任何(具体)实现类实现。

如果 abstract 已过时,为什么它会包含在 Java 中?抽象接口有历史吗?

有趣的问题。我翻出了 JLS 的 第一版 ,甚至在那里它说 “这个修饰符已经过时,不应该在新的 Java
程序中使用”

好的, 进一步挖掘......在点击了许多断开的链接后,我设法找到了原始Oak
0.2

规范(或“手册”)的副本。我必须说非常有趣的阅读,总共只有 38
页!:-)

在第 5 节,接口下,它提供了以下示例:

public interface Storing {
    void freezeDry(Stream s) = 0;
    void reconstitute(Stream s) = 0;
}

在边缘它说

将来,接口中声明方法的“=0”部分可能会消失。

假设=0abstract关键字替换,我怀疑这abstract在某些时候对于接口方法是强制性的!


相关文章:Java:抽象接口和抽象接口方法

2022-06-21