Для Java functional interfaces Kotlin может передать лямбду вместо anonymous class (SAM).
Разбор
executor.execute { run() }.
- Для Kotlin interfaces нужен
fun interface.
- Упрощает Android listener API.
- Несколько абстрактных методов — SAM не применим.
Итог
SAM делает Java callback API идиоматичным в Kotlin.