Используется шаблон Observer / Listener. Вы реализуете определенный интерфейс, а затем регистрируетесь на платформе Android. Так платформа Android узнает, какой класс и какой метод вызывать.
Поскольку мы используем интерфейс в качестве среды, платформа Android знает, какие методы вызывать. Класс - это то, что вы предоставляете, создавая анонимные внутренние классы или полноценные классы.
Пример:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// You code
}
});
Теперь здесь Android будет вызывать метод интерфейса View.OnClickListener, и вы передаете фактический экземпляр класса в качестве аргумента.