2013-07-31 8 views
5

プライベートインターフェイスのメソッドをコードでどのように使用できますか?プライベートインターフェイス

抽象クラスは、インスタンス化できないものです。したがって、抽象クラスのメソッドを使用する必要がある場合、それらを継承してそのメソッドを使用することができます。

しかし、インターフェイスについて言えば、それらのメソッドを使用するためにインターフェイスを実装する必要があります。

答えて

5

privateキーワードは「同じクラスの誰を」意味:

public class Foo { 

    private interface X {...} 
    private class X1 implements X {...} 
} 

これはFooの内部で宣言されたすべてのクラスがインタフェースFoo.Xを使用できることを意味します。

command patternここで、Fooは文字列を受け入れ、すべて同じインターフェイスを実装する内部コマンドオブジェクトに変換します。

ファイルFoo.javaに2番目のクラスBarを追加すると、Foo.Xは表示されません。

+1

私はあなたの答えを理解することに問題があります。 'Foo.javaの内部で宣言されたすべてのクラスはFoo.X.というインターフェースを使うことができます。' 'Foo'クラスの外に' class Bar'のような別のクラスを作成して 'Foo.java'に作成すると' Foo X? – Pshemo

+0

@Pshemo私は同じ疑いがありました。 – Ashima

+1

@Pshemo:私は 'Bar'が' Foo.X'を使うことができると確信していましたが、そうではありません。私は答えを決めた。 –

0

あなたは、クラスの場合と同じようにプライベートインタフェースを拡張します。 このインターフェイスを可視領域の範囲外に実装することができます。