2013-03-20 68 views
1

我最近意识到一个接口可以在Java中这样声明。Java界面如何抽象?

public abstract interface Foo 
{ 
    // ... body 
} 

为什么这是一个有效的语法?从语义上讲,它对我来说没有任何意义(即,interface已经是摘要,不是吗?)。 用abstract声明的接口和没有声明的接口是否有区别?

+0

http://stackoverflow.com/questions/7202616/java-abstract-interface – 2013-03-20 03:03:53

+3

没有区别。每个接口都是隐式抽象的,这个修饰符已经过时了。 – 2013-03-20 03:07:00

+0

@Sudhanshu我同意你的观点,界面是隐含抽象的,尽管我不同意'abstract'是一个过时的修饰语。它仍然在用来声明抽象类,这些抽象类明显不同于接口 – 2013-03-20 03:11:32

回答

4

这不是必需的,因为它隐含在所有接口中。包含或不包含没有区别。包含它很奇怪,所以我会避免它。