2013-07-31 16 views
5

Come possiamo utilizzare i metodi di un'interfaccia privata nel nostro codice?Interfacce private

Le classi astratte sono qualcosa che non può essere istanziato. Quindi, se abbiamo bisogno di usare metodi di classe astratta, possiamo ereditarli e usare i loro metodi.

Ma, quando parliamo di interfacce, dobbiamo implementarle per usare i loro metodi.

risposta

5

Il private parola chiave significa "chiunque nella stessa classe":

public class Foo { 

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

Ciò significa che tutte le classi dichiarate all'interno di Foo possibile utilizzare l'interfaccia Foo.X.

Un caso di utilizzo comune è lo command pattern dove accetta, ad esempio, stringhe e le converte in oggetti di comando interni che implementano tutti la stessa interfaccia.

Se si aggiunge una seconda classe Bar al file Foo.java, non è possibile visualizzare Foo.X.

+1

Ho un problema con la comprensione della risposta. 'tutte le classi dichiarate all'interno di Foo.java possono usare l'interfaccia Foo.X', quindi se creo un'altra classe come' class Bar' al di fuori della classe 'Foo' ma in' Foo.java' dovrebbe essere in grado di implementare 'Foo .X'? – Pshemo

+0

@Pshemo Ho avuto lo stesso dubbio. – Ashima

+1

@Pshemo: ero abbastanza sicuro che 'Bar' potesse usare' Foo.X' ma non è così. Ho risolto la mia risposta. –

0

Si estende nello stesso modo l'interfaccia privata come nel caso delle classi. è possibile implementare tale interfaccia all'esterno del campo visibilità.