L'interface è come un modulo che una classe deve seguire all'interno di essa si dichiarano metodi ma non si implementano
ad esempio:
public interface Modulo{
public void metodo1(String stringa, int numero);
public NomeClasse metodo2():
//ecc ecc
}
oppure puo essere usata anche per definire delle costanti globali nel programma ad esempio, insomma ci sono tanti modi per usarle, io ad esempio su alcuni programmi le usavo per dei callback.
comunque la classe che implementa l'interfaccia Modulo dovrà necessariamente overridare tutti i metodi di Modulo.
questa cosa si chiama polimorfismo, se prendiamo 10 classi che implementano modulo, ognuna di queste classi avrà un metodo1 (riprendendo l'esempio di prima) che prenderà varie forme un esempio piu concreto potrei farlo cosi:
public interface Tester{
public void verify(//argomenti);
}
ora prendiamo una prima classe che definisce una persona e gli implementiamo Tester quindi overridiamo il metodo verify e verifichiamo che la persona sia maggiorenne.
poi facciamo un'altra classe che definisce una Automobile e gli implementiamo Tester in questo caso verify verifichera che la macchina ha la l'assicurazione.
e cosi via.
quindi 1 metodo verify che fa tante cose in tante classe ovvero che ha piu forme.