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

Наследование интерфейсов в Kotlin

Интерфейсы наследуют друг друга так же, как классы: после двоеточия указывают родительский интерфейс. Дочерний контракт включает все методы и свойства родителя плюс свои.

interface Figure { fun area(): Double fun perimeter(): Double } interface Rectangle : Figure { val width: Double val height: Double }

Класс, реализующий Rectangle, обязан закрыть и методы Figure, и требования Rectangle. Повторно объявлять методы родительского интерфейса в дочернем не нужно - они уже входят в контракт.

class SimpleRect( override val width: Double, override val height: Double ) : Rectangle { override fun area(): Double = width * height override fun perimeter(): Double = 2 * (width + height) }

Цепочка интерфейсов помогает не дублировать одинаковые методы в разных контрактах. Общую часть выносят в базовый интерфейс, частные детали - в наследников.

Сделайте интерфейс User с методами getName, setName, getAge, setAge.

Сделайте интерфейс Employee, наследующий от интерфейса User и добавляющий в него методы getSalary и setSalary.

Сделайте класс OfficeEmployee, реализующий интерфейс Employee.

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