In molti contesti, specie per gestire le interfacce grafiche, si fa uso delle cosiddette funzioni di callback
Un esempio non legato alla grafica è la funzione qsort del C che richiede una funzione di callback che indichi l'ordine di due elementi.
Trasportando la qsort in Java, la funzione di callback maggioreDi dovrebbe tramutarsi in un metodo maggioreDi degli orrgetti da ordinare.
In C++ otterremmo questo metodo utilizzando l'ereditarietà multipla: creeremmo una classe Confrontabile che contenga il metodo virtuale puro maggioreDi e creeremmo una classe che derivi sia dal suo naturale padre che da maggioreDi
In Java l'ereditarietà multipla manca, ma per risolvere il problema di garantire che una classe fornisca uno o alcuni metodi necessari, si utilizzano le interfacce.