Cómo crear una instancia de una clase abstracta en Kotlin?
¡Hola a todos! Acabo de empezar a aprender Kotlin después de Java y me encontré con una situación confusa. En Java no se puede crear directamente un objeto de una clase abstracta — necesitas heredar e implementar los métodos abstractos. Pero en Kotlin veo que a veces se puede escribir algo como:
```kotlin
abstract class MyAbstractClass {
abstract fun doSomething()
}
fun main() {
// ¿Esto funciona en Kotlin?
val instance = object : MyAbstractClass() {
override fun doSomething() {
println("Implementación")
}
}
}
```
Tengo una clase abstracta `Shape` con un método abstracto `calculateArea()`. Necesito crear un objeto temporal para pruebas, sin crear una clase heredera separada. ¿Se puede hacer? Y si es así, ¿cómo funciona internamente? He oído sobre clases anónimas en Java, pero no estoy seguro de que en Kotlin sea lo mismo. Explíquenlo, por favor, con ejemplos.
```kotlin
abstract class Shape(val name: String) {
abstract fun calculateArea(): Double
```