Sobes.tech
Junior — Middle

Kotlin'de neden data class'tan kalıtım yasaktır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de data class kalıtımı yasaktır çünkü data class otomatik olarak equals(), hashCode(), toString() metodlarını, ayrıca copy() ve destruktürasyon bileşenlerini üretir. Kalıtıma izin verilirse, bu metodların davranışında belirsizlikler ve hatalar ortaya çıkabilir, çünkü alt sınıf durumu veya mantığı değiştirebilir ve bu da data class'ın sözleşmesini ihlal eder.

Bu nedenle, kalıtımın yasaklanması, data class'ın bütünlüğünü ve öngörülebilirliğini sağlar.

Örnek:

data class User(val name: String, val age: Int)

// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Derleme hatası