Ключевое слово implements
В Kotlin для реализации интерфейсов используется двоеточие : после имени класса,
за которым следует имя интерфейса. В отличие от некоторых других языков программирования,
Kotlin не использует ключевое слово implements явно. Класс может реализовывать
несколько интерфейсов, перечисляя их через запятую.
Синтаксис
class ClassName : InterfaceName {
// реализация методов интерфейса
}
class ClassName : Interface1, Interface2 {
// реализация методов интерфейсов
}
Пример
Создадим интерфейс Drawable с методом draw
и реализуем его в классе Circle:
interface Drawable {
fun draw()
}
class Circle : Drawable {
override fun draw() {
println("Drawing a circle")
}
}
Использование реализации:
val circle = Circle()
circle.draw()
Результат выполнения кода:
String "Drawing a circle"
Пример
Реализация нескольких интерфейсов в одном классе:
interface Clickable {
fun click()
}
interface Draggable {
fun drag()
}
class UIElement : Clickable, Draggable {
override fun click() {
println("Element clicked")
}
override fun drag() {
println("Element dragged")
}
}
Использование реализации:
val element = UIElement()
element.click()
element.drag()
Результат выполнения кода:
String "Element clicked"
String "Element dragged"
Пример
Реализация интерфейса с свойствами и методами с реализацией по умолчанию:
interface Vehicle {
val maxSpeed: Double
fun drive() {
println("Driving at max speed $maxSpeed")
}
}
class Car(override val maxSpeed: Double) : Vehicle {
override fun drive() {
super.drive()
println("Car is driving")
}
}
Использование реализации:
val car = Car(200.0)
car.drive()
Результат выполнения кода:
String "Driving at max speed 200.0"
String "Car is driving"