Certo, le interfacce servono tipicamente per definire un "contratto". E quello che hai citato è un esempio che si può realizzare con una interfaccia per definire in modo più astratto un meccanismo di "callback".
Tecnicamente l'esempio è:
La classe ClassB non "sa" nulla di ClassA, sa solo di una interfaccia Callback. E siccome ClassA è-un Callback, la invocazione di lavoro passando this è corretta.codice:public interface Callback { void notifica(); } public class ClassA implements Callback { public void unMetodo() { ClassB b = new ClassB(); b.lavoro(this); } public void notifica() { // .... } } public class ClassB { public void lavoro(Callback c) { // ..... c.notifica(); } }


Rispondi quotando