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!")
}
}