Quote Originariamente inviata da newutente Visualizza il messaggio
Ti riferisci al fatto che definendo una interfaccia si è in qualche modo costretti poi a implementare i suoi metodi?
Anche facendo una classe astratta con metodo astratto avresti lo stesso obbligo (ovviamente in una classe concreta):

codice:
public abstract class FiltroFilm {
    public abstract boolean filtra(Film film);
}

A livello di "contratto" e di obblighi non ci sono differenze: in una classe concreta che estende FiltroFilm devi implementare filtra. La dichiarazione-istanziazione con una classe anonima è esattamente la stessa con FiltroFilm come interfaccia o come classe astratta.
Il punto è che una interfaccia la puoi implementare in qualunque classe. Una classe astratta .... no, non è detto (una classe può già estendere altro).

Quote Originariamente inviata da newutente Visualizza il messaggio
Ah ecco, quindi diciamo che questo esempio mostra che volendo è possibile implementare i metodi di una interfaccia anche tramite una classe anonima. Giusto?
Sì, se quel comportamento non deve essere riutilizzabile altrove.