Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktOpIfDM 55 of 123 menu
◀ ▶

Методы с телом в интерфейсе Kotlin

В Kotlin метод интерфейса может иметь тело. Такая реализация по умолчанию попадает во все классы, которые подключают интерфейс, пока они сами не переопределят метод.

interface Clickable { fun click() fun showHint() { println("clickable") } } class Button : Clickable { override fun click() { println("clicked") } }

Класс обязан реализовать только методы без тела. Метод showHint можно вызывать сразу у объекта Button, не писа́я его код заново.

fun main() { val button = Button() button.click() button.showHint() }

При необходимости поведение по умолчанию заменяют своим override. Это удобно, когда у большинства реализаций один и тот же код, а у отдельных типов - особый.

interface Clickable { fun click() fun showHint() { println("clickable") } } class SilentButton : Clickable { override fun click() { println("silent click") } override fun showHint() { println("no hint") } }

Сделайте интерфейс Resettable. Пусть в нем будет абстрактный метод reset и метод describeReset с телом, которое выводит строку "reset available".

Сделайте класс Timer, реализующий интерфейс Resettable. Не переопределяйте метод describeReset.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить