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).
Sì, se quel comportamento non deve essere riutilizzabile altrove.


Rispondi quotando