Interface

Intro

AI generated
Kotlin interfaces are blueprints for classes, outlining methods and properties that implementing classes must adhere to. They define a contract, ensuring consistency across different classes. Unlike abstract classes, Kotlin classes can implement multiple interfaces, enabling a form of multiple inheritance. Interfaces cannot store state but can declare abstract properties or provide implementations for accessors.

Code

interface MyInterface {
    val myProperty: String // Abstract property
    fun myFunction() // Abstract method
    fun myDefaultFunction() { // Method with default implementation
        println("Default implementation")
    }
}

class MyClass : MyInterface {
    override val myProperty: String = "Hello"
    override fun myFunction() {
        println("Implementation of myFunction")
    }
}

val instance = MyClass()
println(instance.myProperty) // Output: Hello
instance.myFunction() // Output: Implementation of myFunction
instance.myDefaultFunction() // Output: Default implementation

In this example, MyInterface defines an abstract property myProperty, an abstract method myFunction, and a default implementation for myDefaultFunction. MyClass implements MyInterface, providing concrete implementations for the abstract members. Interfaces facilitate code reuse, promote decoupling, and enhance flexibility in Kotlin development.

Documentation

kotlin | interface

jetbrains | multiplatform-expect-actual

expect actual declaration

SO | kmp actual expect