Sobes.tech
Junior — Middle

É possível declarar um herdeiro numa data class em Kotlin?

sobes.tech IA

Resposta da IA

Em Kotlin, uma data class por padrão não pode ser herdada, pois são automaticamente declaradas como final. Isso é feito para garantir o funcionamento correto dos métodos gerados, como equals(), hashCode() e copy().

Se tentar declarar uma classe que herde de uma data class, o compilador gerará um erro.

No entanto, se for realmente necessário, pode-se tornar uma data class aberta adicionando o modificador open, mas isso não é recomendado nem suportado diretamente, pois uma data class não pode ser open.

Exemplo que não compilará:

data class User(val name: String)

class AdminUser(val adminLevel: Int) : User("Admin") // Erro

Portanto, herdar de uma data class em Kotlin é impossível.