Kotlin - Interface
Neste capítulo, aprenderemos sobre a interface em Kotlin. No Kotlin, a interface funciona exatamente de forma semelhante ao Java 8, o que significa que eles podem conter a implementação de métodos, bem como a declaração de métodos abstratos. Uma interface pode ser implementada por uma classe para usar sua funcionalidade definida. Já apresentamos um exemplo com uma interface no Capítulo 6 - seção “classe interna anônima”. Neste capítulo, aprenderemos mais sobre isso. A palavra-chave “interface” é usada para definir uma interface em Kotlin, conforme mostrado no código a seguir.
interface ExampleInterface {
var myVar: String // abstract property
fun absMethod() // abstract method
fun sayHello() = "Hello there" // method with default implementation
}
No exemplo acima, criamos uma interface chamada “ExampleInterface” e, dentro dela, temos algumas propriedades e métodos abstratos todos juntos. Observe a função chamada “sayHello ()”, que é um método implementado.
No exemplo a seguir, implementaremos a interface acima em uma classe.
interface ExampleInterface {
var myVar: Int // abstract property
fun absMethod():String // abstract method
fun hello() {
println("Hello there, Welcome to TutorialsPoint.Com!")
}
}
class InterfaceImp : ExampleInterface {
override var myVar: Int = 25
override fun absMethod() = "Happy Learning "
}
fun main(args: Array<String>) {
val obj = InterfaceImp()
println("My Variable Value is = ${obj.myVar}")
print("Calling hello(): ")
obj.hello()
print("Message from the Website-- ")
println(obj.absMethod())
}
O trecho de código acima produzirá a seguinte saída no navegador.
My Variable Value is = 25
Calling hello(): Hello there, Welcome to TutorialsPoint.Com!
Message from the Website-- Happy Learning
Conforme mencionado anteriormente, Kotlin não oferece suporte a várias heranças, no entanto, a mesma coisa pode ser alcançada implementando mais de duas interfaces ao mesmo tempo.
No exemplo a seguir, criaremos duas interfaces e, posteriormente, implementaremos ambas as interfaces em uma classe.
interface A {
fun printMe() {
println(" method of interface A")
}
}
interface B {
fun printMeToo() {
println("I am another Method from interface B")
}
}
// implements two interfaces A and B
class multipleInterfaceExample: A, B
fun main(args: Array<String>) {
val obj = multipleInterfaceExample()
obj.printMe()
obj.printMeToo()
}
No exemplo acima, criamos duas interfaces de amostra A, B e na classe chamada “multipleInterfaceExample” implementamos duas interfaces declaradas anteriormente. O trecho de código acima produzirá a seguinte saída no navegador.
method of interface A
I am another Method from interface B