インターフェイス public と abstract の指定の違いを誰か教えてもらえますか?
public interface Test{}
と
abstract interface Test{}
インターフェイス public と abstract の指定の違いを誰か教えてもらえますか?
public interface Test{}
と
abstract interface Test{}
いつものように、JLS が答えを提供します ( JLS 9.1.1.1 ):
すべてのインターフェースは暗黙のうちに抽象的です。
public
もちろん、 2番目の例に修飾子を含めるつもりだと思います。そうでない場合は、2 つの間に他にも違いがありますが、それらはabstract
キーワードとは関係ありません。
インターフェイスは暗黙の抽象です。だからabstract interface
必要ありません。
JLS から: http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.1.1.1
9.1.1.1. 抽象インターフェース
すべてのインターフェースは暗黙のうちに抽象的です。
この修飾子は廃止されており、新しいプログラムでは使用しないでください。
定義上、インターフェイスをabstract
そのまま宣言するのは冗長です。abstract
したがって、唯一の違いはpublic
コンポーネントです。最初のインターフェイス (パブリック) はどこからでもアクセスできますが、2 番目のインターフェイス (デフォルトの可視性) はパッケージ プライベートです。つまり、独自のパッケージ内でのみアクセスできます。