Kotlin Dersleri #17 - Interface Nedir? Nasıl Kullanılır?

Interface

Basitçe iki varlık arasındaki iletişimi sağlar.
Türkçeye arayüz olarak çevirilen interfaceler; nesne yönelimli programlamanın temel yapılarındandır.

Aşağıda birkaç interface örneği göstereceğim, yorum yaparak anlamadığınız noktaları sorabilirsiniz.

Örnek1:

interface Person {
    fun name()
    fun age() {
      // optional body
    }
}
 

Implementing Interface

Örnek2:

class Child : Person {
    override fun name() {
        // body
    }override fun age() {
        // body
    }
}

Örnek2'de gördüğünüza üzere bir interface'den implemente edilen bir sınıf, o interface'de bulunan methodları override etmek zorundadır.

 

Interface'lerde Değişkenler

Örnek3:

interface MyInterface {
    val prop: Int // abstract

    val propertyWithImplementation: String
        get() = "foo"

    fun foo() {
        print(prop)
    }
}

class Child : MyInterface {
    override val prop: Int = 29
}
 

Kalıtım

Örnek4:

interface Named {
    val name: String
}

interface Person : Named {
    val firstName: String
    val lastName: String

    override val name: String get() = "$firstName $lastName"
}

data class Employee(
    // implementing 'name' is not required
    override val firstName: String,
    override val lastName: String,
    val position: Position
) : Person
 

Çoklu Kalıtım Problemleri ve Çözümleri

interface A {
    fun foo() { print("A") }
    fun bar()
}

interface B {
    fun foo() { print("B") }
    fun bar() { print("bar") }
}

class C : A {
    override fun bar() { print("bar") }
}

class D : A, B {
    override fun foo() {
        super<A>.foo()
        super<B>.foo()
    }

    override fun bar() {
        super<B>.bar()
    }
}
 
Sorularınızı ve isteklerinizi yorum bölümünden iletebilirsiniz.
Kaynak:
Bu postu paylaş:

0 yorum

Yorum yapmak için giriş yapmanız gerekmektedir. Giriş yap
Henüz hesabınız yoksa 20 saniyenizi ayırıp kayıt olabilirsiniz. Kaydol