Interfaces

Interfaces

Observação: O arquivo utilizado neste conteúdo que fala sobre interfaces é o 14-interfaces.kt.

Pronto para mais um conteúdo legal?

O que são Interfaces?

Podemos pensar em Interfaces, como uma espécie de contrato, onde aquele que o assina, precisa cumprir com as regras estabelecidas dentro dele.

Transferindo essa ideia para o âmbito da programação, uma interface é como se fosse uma classe abstrata, que foi feita para ser herdada, ou seja, não podemos instanciar.

Observe uma Interface chamada Selvagem que foi declara abaixo:

interface Selvagem{

//Quando declaramos um método que possui um corpo (bloco de chaves), não precisamos implementar futuramente em outra classe que herda nossa Interface
fun atacar(){
println("Atacando!")
}

//val teste = ""//É importante ressaltar que inicializadores não são permitidos em interfaces

var teste: String//Nesse caso, nossos atributos precisam declarados em uma inicialização

fun dormir()//Já quando declaramos um método sem corpo (bloco de chaves), somos obrigados a implementar com override na classe que herda essa interface
}

Existem alguns pontos que precisamos entender sobre as interfaces:

  • Quando declaramos um método que possui um corpo (bloco de chaves), não precisamos implementar futuramente em outra classe que herda nossa Interface.
  • É importante ressaltar que não é permitido iniciar um atributo dentro de uma interface.
  • Já quando declaramos um método sem corpo (bloco de chaves), somos obrigados a implementar com override na classe que herda essa interface.

Observe abaixo uma classe chamada Gato que herda da Interface Selvagem:

class Gato(): Selvagem{
override var teste: String = "Wilson"//Como dito anteriormente, precisamos de um override neste atributo

override fun dormir(){//Mesma lógica dita acima
println("Preciso dormir...")
}

//O método abaixo é da propria classe Gato
fun acordar(){
println("Acordando...")
}

}

Veja que foi declarado no contrato (interface), precisou ser cumprido dentro da classe FILHO (Gato).

Note que em conteúdos anteriores, você viu que não é possível que uma classe FILHO herde de múltiplas classes PAI, você se lembra disso?

Mas em compensação, o Kotlin permite que herdamos de múltiplas Interfaces, observe:

interface inter1
interface inter2

class multi: inter1, inter2//Exemplo de classe que herda de múltiplas interfaces

Conclusão

Neste conteúdo você aprendeu um dos conceitos mais utilizados no desenvolvimento Kotlin, que é o conceito e a utilização de interfaces.

Até o próximo conteúdo 😉