Junior — Middle
Czy można tworzyć podklasy w data class w Kotlin?
sobes.tech AI
Odpowiedź od AI
W Kotlinie data class domyślnie są final, co oznacza, że nie można ich dziedziczyć. Zostało to zrobione, aby zachować semantykę i poprawne działanie automatycznie generowanych metod, takich jak equals(), hashCode() i copy().
Jeśli spróbujesz utworzyć podklasę data class, kompilator zgłosi błąd. Jednak jeśli jest to naprawdę konieczne, można uczynić klasę otwartą (open), ale wtedy nie może ona być data class.
Przykład, który nie zostanie skompilowany:
data class User(val name: String)
class SpecialUser(val id: Int) : User("default") // Błąd: nie można dziedziczyć po data class
W związku z tym, nie można tworzyć podklas data class.