
Originariamente inviata da
andbin
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 è:
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();
}
}
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.