Kotlin - Arayüz
Bu bölümde, Kotlin'deki arayüz hakkında bilgi edineceğiz. Kotlin'de arayüz, Java 8'e tam olarak benzer şekilde çalışır; bu, yöntem uygulamasının yanı sıra soyut yöntem bildirimini de içerebilecekleri anlamına gelir. Bir arayüz, tanımlanmış işlevselliğini kullanmak için bir sınıf tarafından uygulanabilir. Bölüm 6 - "anonim iç sınıf" bölümünde arabirimle bir örneği zaten tanıttık. Bu bölümde bunun hakkında daha çok şey öğreneceğiz. Aşağıdaki kod parçasında gösterildiği gibi, “arayüz” anahtar kelimesi Kotlin'de bir arayüz tanımlamak için kullanılır.
interface ExampleInterface {
var myVar: String // abstract property
fun absMethod() // abstract method
fun sayHello() = "Hello there" // method with default implementation
}
Yukarıdaki örnekte, "ExampleInterface" adında bir arayüz oluşturduk ve bunun içinde bir çift soyut özellik ve yöntemimiz var. Uygulanan bir yöntem olan "sayHello ()" adlı işleve bakın.
Aşağıdaki örnekte, yukarıdaki arayüzü bir sınıfta uygulayacağız.
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())
}
Yukarıdaki kod parçası, tarayıcıda aşağıdaki çıktıyı verecektir.
My Variable Value is = 25
Calling hello(): Hello there, Welcome to TutorialsPoint.Com!
Message from the Website-- Happy Learning
Daha önce de belirtildiği gibi, Kotlin çoklu kalıtımı desteklemez, ancak aynı şey aynı anda ikiden fazla arayüzün uygulanmasıyla da elde edilebilir.
Aşağıdaki örnekte, iki arayüz oluşturacağız ve daha sonra her iki arayüzü de bir sınıfa uygulayacağız.
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()
}
Yukarıdaki örnekte, iki örnek arabirim A, B oluşturduk ve "multipleInterfaceExample" adlı sınıfta daha önce bildirilen iki arabirimi uyguladık. Yukarıdaki kod parçası, tarayıcıda aşağıdaki çıktıyı verecektir.
method of interface A
I am another Method from interface B