如何在 Kotlin 中基于抽象类创建匿名类?
你好!我正在从 Java 切换到 Kotlin,遇到了一个问题。在 Java 中,我经常使用匿名类来快速实现抽象类或接口。例如,在 Java 中我可以这样写:
```java
abstract class Animal {
abstract void makeSound();
}
public class Main {
public static void main(String[] args) {
Animal dog = new Animal() {
@Override
void makeSound() {
System.out.println("Woof!");
}
};
dog.makeSound();
}
}
```
这运行得很好。但是当我尝试在 Kotlin 中做同样的事情时,我写了:
```kotlin
abstract class Animal {
abstract fun makeSound()
}
fun main() {
val dog = Animal() {
override fun makeSound() {
println("Woof!")
}
}
dog.makeSound()
}
```
然后我得到了编译错误:"Cannot create an instance of an abstract class"。我明白 Kotlin 是另一种语言,但如何