Interfacce e classi in Java
Un'interfaccia ha lo stesso ruolo di una superclasse e una classe che implementa un'interfaccia ha lo stesso ruolo di una sottoclasse che estende la superclasse. È lecito definire una variabile il cui tipo è un'interfaccia, ma non è possibile costruire oggetti da un'interfaccia.
Uso delle interfacce
Comparable c; Una variabile oggetto di tipo Comparable può puntare ad un oggetto di una classe che realizza Comparable. Usando la variabile c non possiamo utilizzare tutti i metodi di BankAccount però siamo sicuri che quell'oggetto ha un metodo compareTo. Comparable c = new BankAccount(10);
if ( c.compareTo(d) > 0 )
Conversione di riferimenti
Per convertire un riferimento il cui tipo è un'interfaccia in un riferimento il cui tipo è una classe che implementa l'interfaccia, se siamo certi che punta ad un oggetto di tipo BankAccount, possiamo creare una nuova variabile acct di tipo BankAccount e fare un cast di su acct.
Comparable c = new BankAccount(10); BankAccount acct = (BankAccount) c; double saldo = acct.getBalance();