Kotlin: Interface no tiene constructores — ¿cómo crear una instancia?
¡Hola! Recientemente migré de Java a Kotlin y me encontré con un error extraño. Tengo una interfaz `Drawable`:
```kotlin
interface Drawable {
fun draw()
}
```
Quiero crear una instancia de esta interfaz usando una clase anónima, como hacía en Java:
```java
// Java — funciona
Drawable d = new Drawable() {
@Override
public void draw() {
System.out.println("Dibujando");
}
};
```
Pero en Kotlin escribo:
```kotlin
val d = Drawable() // ¡Error!
```
Y obtengo: "Interface Drawable does not have constructors". Probé diferentes variantes — `Drawable { ... }`, `Drawable() { ... }` — nada funciona. ¿Cómo crear correctamente una implementación anónima de una interfaz en Kotlin? ¿O es necesario crear una clase separada? Agradecería un ejemplo de código.
<<>>
Problema: las interfaces en Kotlin no se pueden instanciar como clases
El error ocurre porque en Kotlin las interfaces no son clases. En Java puedes escribir new Interface