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.foo()
super.foo()
}

override fun bar() {
super.bar()
}
}

Sorularınızı ve isteklerinizi yorum bölümünden iletebilirsiniz.