Originariamente inviato da Kaamos
In realtà l'utilità è la stessa, che vengano implementate una o più interfacce. Se non implementassi le due interfacce ma solo i metodi, come "dimostreresti" che la tua classe può fare davvero queste due cose? Puoi anche implementare un metodo compareTo, ma se non implementi l'interfaccia Comparable non puoi passarlo ad un metodo che accetta come parametro un oggetto Comparable... non può mica dirgli "fidati che il metodo c'è".
Quindi detta in parole povere la funzionalità più importante delle interfacce è quella di Creare classi che possano gestire oggetti generici scegliendo quello più opportuno a runtime giusto?
Inoltre se una classe A implementa due interface ex Runnable e Comparable e una classe B ha il seguente metodo:
gestisci(Runnable c){

Runnable[] b = c.run() //metodo che istanzia e restituisce deu oggetti di tipo Runnable
b[0].compareto(b[1])

}
Lo posso fare se l'oggetto passatoli oltre ad implementare l'interfaccia Runnuble implementa anche l'interfaccia Comparable o no?