Sobes.tech
Junior — Middle

Kotlin'de data class'ların alt sınıflarını oluşturmak mümkün mü?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de, data classler varsayılan olarak finaldır, yani kalıtım yapılamazlar. Bu, otomatik olarak oluşturulan equals(), hashCode() ve copy() gibi metodların semantiğini ve doğru çalışmasını korumak içindir.

Eğer data class'ın alt sınıfını oluşturmaya çalışırsanız, derleyici hata verir. Ancak, gerçekten gerekiyorsa, sınıfı open yapabilirsiniz, fakat bu durumda data class olamaz.

İşte derlenmeyecek bir örnek:

data class User(val name: String)

class SpecialUser(val id: Int) : User("default") // Hata: data class'tan kalıtım yapılamaz

Bu nedenle, data class'ın alt sınıflarını oluşturmak mümkün değildir.