2012-03-14 7 views
3

実装されたインターフェイスメソッドがpublicとして宣言されるのはなぜですか?私はちょうど私がインターフェイスに出くわしたとき、私は次のコードを見たのJavaを学び始め

interface Callback { 
    void callback(int param); 
} 

class Client implements Callback { 
    public void callback(int p) { 
    } 
} 

理由は、実装するインターフェース方式がpublicとして宣言されていることがありますか?

答えて

10

インターフェースメソッドのデフォルトの修飾子は、クラスメソッドのpublic abstract

デフォルト修飾子がパッケージローカルです。これらは同じではなく、パブリックメソッドをパッケージローカルでオーバーライドすることはできません。抽象メソッドを非抽象メソッドでオーバーライドすることができます。

インターフェイスにこれを配置する必要はありませんが、クラスメソッドをパブリックにする必要があります。

+0

ありがとうございました。 –

0

publicアクセス指定子は、どのパッケージのどのクラスでもインタフェースを使用できることを示します。インタフェースがパブリックであると指定しない場合は、インタフェースと同じパッケージに定義されているクラスからのみインタフェースにアクセスできます。

+2

これは最後の方法に関する質問に答えているかどうかわかりません。 –

+1

@Laxman:これは疑問ではないですが、 'callback(int p)'メソッドは 'Client'クラスでpublic宣言されています。 –

+0

@KuldeepJain正確に –

関連する問題