РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1245 of 1310 menu

Ключевое слово interface

Ключевое слово interface используется для объявления интерфейсов, которые определяют абстрактные методы и свойства, которые должны быть реализованы классами. Интерфейсы в Kotlin могут содержать методы с реализацией по умолчанию и свойства.

Синтаксис

interface InterfaceName { // абстрактные методы fun abstractMethod() // методы с реализацией по умолчанию fun methodWithDefault() { // реализация } // абстрактные свойства val abstractProperty: String // свойства с геттером val propertyWithGetter: String get() = "Default value" }

Пример

Создадим простой интерфейс с абстрактным методом:

interface Drawable { fun draw() }

Пример

Реализуем интерфейс в классе:

class Circle : Drawable { override fun draw() { println("Drawing circle") } } val circle = Circle() circle.draw()

Результат выполнения кода:

String "Drawing circle"

Пример

Интерфейс с методом по умолчанию:

interface Clickable { fun click() fun show() = println("Element is clickable") } class Button : Clickable { override fun click() { println("Button clicked") } } val button = Button() button.click() button.show()

Результат выполнения кода:

String "Button clicked" String "Element is clickable"

Пример

Интерфейс со свойствами:

interface Named { val name: String val description: String get() = "Object named: $name" } class Person(override val name: String) : Named val person = Person("John") println(person.name) println(person.description)

Результат выполнения кода:

String "John" String "Object named: John"

Пример

Реализация нескольких интерфейсов:

interface A { fun foo() = println("A foo") } interface B { fun foo() = println("B foo") } class C : A, B { override fun foo() { super<A>.foo() super<B>.foo() } } val c = C() c.foo()

Результат выполнения кода:

String "A foo" String "B foo"

Смотрите также

  • ключевое слово class,
    которое используется для объявления классов
  • ключевое слово abstract,
    которое используется для объявления абстрактных классов
  • ключевое слово override,
    которое используется для переопределения методов
  • ключевое слово open,
    которое используется для разрешения наследования
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить