As interfaces são tipos personalizados fornecidos pelo Kotlin que não podem ser instanciados diretamente. Em vez disso, eles definem uma forma de comportamento que os tipos de implementação devem seguir. Com a interface, você pode definir um conjunto de propriedades e métodos, que os tipos concretos devem seguir e implementar.

Criação de interfaces -

A definição da interface em Kotlin começa com a palavra-chave interface seguida pelo nome da interface, seguida pelas chaves dentro das quais residem os membros da interface. A diferença é que os membros não terão uma definição própria. Essas definições serão fornecidas pelos tipos em conformidade.

Exemplo:

interface Vehicle()
{
  fun start()
  fun stop()
}

Implementando interfaces -

Uma interface pode ser implementada por uma classe ou um objeto. Ao implementar uma interface, o tipo em conformidade deve fornecer a definição para todos os seus membros. Para implementar uma interface, o nome do tipo personalizado é seguido por dois pontos e o nome da interface a ser implementada.

class Car: Vehicle

Exemplo para demonstrar uma interface em Kotlin -

interface Vehicle {
    fun start()
    fun stop()
}
  
class Car : Vehicle {
    override fun start()
    {
        println("Car started")
    }
  
    override fun stop()
    {
        println("Car stopped")
    }
}
  
fun main()
{
    val obj = Car()
    obj.start()
    obj.stop()
}
interface FirstInterface {
    fun add(a: Int, b: Int = 5)
    fun print()
    {
        println("This is a default method defined in the interface")
    }
}
class InterfaceDemo : FirstInterface {
    override fun add(a: Int, b: Int)
    {
        val x = a + b
        println("Sum is $x")
    }
  
    override fun print()
    {
        super.print()
        println("It has been overridden")
    }
}
  
fun main()
{
    val obj = InterfaceDemo()
    println(obj.add(5))
    obj.print()
}
interface InterfaceProperties {
    val a : Int
    val b : String
        get() = "Hello"
}
  
class PropertiesDemo : InterfaceProperties {
    override val a : Int = 5000
    override val b : String = "Property Overridden"
}
  
fun main()
{
    val x = PropertiesDemo()
    println(x.a)
    println(x.b)
}
interface Dimensions {
    val length : Double
    val breadth : Double
}
  
interface CalculateParameters : Dimensions {
    fun area()
    fun perimeter()
}
  
class XYZ : CalculateParameters {
    override val length : Double
        get() = 10.0
    override val breadth : Double
        get()= 15.0
  
    override fun area()
    {
        println("Area is ${length * breadth}")
    }
  
    override fun perimeter()
    {
        println("Perimeter is ${2*(length+breadth)}")
    }
}
  
fun main()
{
    val obj = XYZ()
    obj.area()
    obj.perimeter()
}
interface InterfaceProperties {
    val a : Int
    val b : String
        get() = "Hello"
}
  
interface InterfaceMethods {
    fun description()
}
  
class MultipleInterface : InterfaceProperties, InterfaceMethods {
    override val a : Int
        get() = 50
  
    override fun description()
    {
        println("Multiple Interfaces implemented")
    }
}
fun main()
{
    val obj = MultipleInterface()
    obj.description()
}
<aside class="widget widget_text" id="text-15">
</aside>
O que há de novo
Aulas de programação competitiva ao vivo para alunos
Aulas de programação competitiva ao vivo para alunos
Ver detalhes
Curso individualizado de DSA
Curso individualizado de DSA
Ver detalhes
DSA Live Classes para profissionais que trabalham
DSA Live Classes para profissionais que trabalham
Ver detalhes
<aside class="widget widget_text" id="text-16"></aside>

<button class="action-button" id="comment" style="width:45%;cursor:pointer;margin-right:0%;box-shadow:0 2px 5px rgba(0,0,0,.4),0 6px 20px transparent;border-color:#4cb96b;border-radius:4px"> Carregar comentários</button>