Junior — Middle
Miks Kotlinis on keelatud pärida data class'ist?
sobes.tech AI
Vastus AI-lt
Kotlinis on keelatud pärida data class-i, kuna data class genereerib automaatselt meetodid nagu equals(), hashCode(), toString(), samuti copy() ja destruktureerimise komponendid. Pärimise lubamine võib põhjustada ebamäärasusi ja vigu nende meetodite käitumises, kuna alamklass võib muuta olekut või loogikat, rikkudes data class-is kehtestatud lepingu.
Seetõttu tagab pärimise keeld data class-i terviklikkuse ja etteaimatavuse.
Näide:
data class User(val name: String, val age: Int)
// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Koodiviga