Como criar uma instância de uma classe abstrata em Kotlin?
Olá a todos! Comecei a estudar Kotlin depois de Java e me deparei com uma situação confusa. Em Java, não é possível criar diretamente um objeto de uma classe abstrata — é necessário herdar e implementar os métodos abstratos. Mas em Kotlin, vejo que às vezes é possível escrever algo como:
```kotlin
abstract class MyAbstractClass {
abstract fun doSomething()
}
fun main() {
// Isso funciona em Kotlin?
val instance = object : MyAbstractClass() {
override fun doSomething() {
println("Implementação")
}
}
}
```
Eu tenho uma classe abstrata `Shape` com um método abstrato `calculateArea()`. Preciso criar um objeto temporário para teste, sem criar uma classe herdeira separada. É possível fazer isso? E se sim, como funciona por baixo dos panos? Ouvi falar sobre classes anônimas em Java, mas não tenho certeza se em Kotlin é a mesma coisa. Explique, por favor, com exemplos.
```kotlin
abstract class Shape(val name: String) {
abstract fun calculateArea(): Double
```