Интерфейсы в Kotlin реализуются с использованием ключевого слова implements (неявное в Kotlin, просто указывается через двоеточие) или by для делегирования.
Основные способы реализации:
kotlin
При наследовании от класса и реализации интерфейсов одновременно, класс указывается первым.
kotlin
by. Это полезно для композиции и избегания проблем с множественным наследованием реализации.
kotlin
В этом случае ImplementingClass не реализует performAction самостоятельно, вместо этого вызов performingClass.performAction() перенаправляется на di.performAction().При реализации нескольких интерфейсов с одноименными членами, необходимо разрешать конфликты, явно переопределяя член и указывая, от какого интерфейса берется реализация, используя синтаксис <Интерфейс>.<член>.
kotlin