Sobes.tech
Junior

Kotlin'de sınıf ile arayüz arasındaki temel farklar nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • Sınıf: özellikler (durumlar) ve fonksiyonlar (davranışlar) içerebilir. Soyut, açık (kalıtım için) veya son olabilir. Yapıcılar nesnelerin nasıl oluşturulacağını belirler. Tek bir sınıftan kalıtım ve çoklu arayüz uygulamasını destekler.
  • Arayüz: sınıfların uygulaması gereken davranış sözleşimini tanımlar. Soyut fonksiyon ve özellik bildirimleri içerebilir, ayrıca uygulamalı fonksiyonlar (Java 8+) içerebilir. Durumlar (arka plan alanına sahip özellikler) içeremez. Bir sınıf birden fazla arayüz uygulayabilir. Yapıcıya sahip değildir.

Karşılaştırmalı tablo:

Açıklama Sınıf Arayüz
Durum Değeri olan özellikler içerebilir. Değeri olan özellikler içeremez (sadece soyut).
Yapıcılar Mevcut olabilir. Yok.
Uygulama Tam uygulama sağlayabilir. Kısmi veya tam uygulama sağlar (varsayılan metodlar ile).
Kalıtım Bir sınıftan kalıtım alır. Birden fazla arayüz uygular.
Başlatma Örneğin oluşturulabilir. Doğrudan örneklenemez.
Tür Somut veya soyut. Sadece davranış sözleşmesi.

Sınıf örneği:

class Person(val name: String) { // yapıcı ve özellik içeren sınıf
    fun greet() {
        println("Hello, my name is $name")
    }
}

Arayüz örneği:

interface Greeter { // metod içeren arayüz
    fun greet()
}

class EnglishGreeter : Greeter { // arayüzü uygulayan sınıf
    override fun greet() {
        println("Hello!")
    }
}