Es una estructura que define un conjunto de funciones y propiedades que una clase debe implementar, sin necesidad de especificar cómo funcionan exactamente.

Además, permite que una clase implemente múltiples interfaces.

interface Solido {
    fun soySolido() {
        println("Soy solido")
    }
}

interface Liquido {
    var data: Int
    fun soyLiquido() {
        println("Soy liquido")
    }
}

class Estado(): Solido, Liquido {
    override var data: Int = 0
}