Интерфейсы Kotlin
Интерфейсы Kotlin похожи на интерфейсы Java 8. Ключевое слово interface используется для определения интерфейсов, позволяя методам иметь реализации по умолчанию:
Реализация интерфейсов
Класс или объект может реализовывать один или несколько интерфейсов.
Пример
Результат вывода:
foo bar
Свойства в интерфейсах
Свойства в интерфейсах могут быть только абстрактными; инициализирующие значения не допускаются. Интерфейсы не хранят значения свойств. При реализации интерфейса свойства должны быть переопределены:
Пример
Результат вывода:
foo bar example
Переопределение функций
При реализации нескольких интерфейсов вы можете столкнуться с проблемой наследования нескольких реализаций одного и того же метода. Например:
Пример
Результат вывода:
ABbar
В примере интерфейсы A и B оба определяют методы foo() и bar(). Оба реализуют foo(), а B реализует bar(). Поскольку C — конкретный класс, реализующий A, он должен переопределить bar() и реализовать этот абстрактный метод.
Однако если мы наследуем D от A и B, нам нужно реализовать все методы, унаследованные от нескольких интерфейсов, и указать, как D должен их реализовывать. Это правило применяется как к методам, которые наследуют единственную реализацию (bar()), так и к методам, которые наследуют несколько реализаций (foo()).
Другие расширения