Интерфейс в Kotlin объявляется с помощью ключевого слова interface. Он может содержать объявления абстрактных, а также реализацию неабстрактных методов и свойств.
kotlin
Класс реализует интерфейс с помощью оператора двоеточия (:).
kotlin
Ограничения:
- Отсутствие состояния: Интерфейсы не могут хранить состояние в виде переменных экземпляра. Свойства, объявленные в интерфейсе, либо абстрактны (им нужна реализация в классе), либо имеют геттер (возможно, с сеттером), но не бэкинг-поля.
- Множественное наследование реализации: Класс может реализовывать несколько интерфейсов, что позволяет достичь множественного наследования поведения. Однако, если разные интерфейсы предоставляют реализации одного и того же метода с одинаковой сигнатурой, класс, который их реализует, должен явно указать, какую реализацию использовать или предоставить свою собственную.
- Конструкторы: Интерфейсы не могут иметь конструкторов.
- Видимость: Члены интерфейса по умолчанию
public. Их нельзя объявить как private, protected или internal внутри интерфейса.
- Type Aliases: Нельзя использовать псевдонимы типов (type aliases) для интерфейсов, объявленных в другом пакете.