说明
和 Java 一样,可以通过包含带有定义或重写的代码块的方式创建一个匿名的子类。
实现
object AnonymousClass {
def main(args: Array[String]): Unit = {
new Person3 {
override var name: String = "alice"
override def eat(): Unit = println(s"$name eat")
}.eat()
}
}
// 定义抽象类
abstract class Person3 {
var name: String
def eat(): Unit
}
当业务需要实现一个抽象类的属性、方法并调用,但不关心其名字的时候,可以使用匿名子类