匿名内部类
匿名内部类是没有名称的子类,直接用来创建实例对象。Spark的源代码中有大量使用到匿名内部类。
scala中的匿名内部类使用与Java一致。
定义 语法
val/var 变量名 = new 类/抽象类 {
// 重写方法
}
示例说明
- 1.创建一个Person抽象类,并添加一个sayHello抽象方法
- 2.添加main方法,通过创建匿名内部类的方式来实现Person
- 3.调用匿名内部类对象的sayHello方法
参考代码
abstract class Person7 {
def sayHello:Unit
}
object Main7 {
def main(args: Array[String]): Unit = {
// 直接用new来创建一个匿名内部类对象
val p1 = new Person7 {
override def sayHello: Unit = println("我是一个匿名内部类")
}
p1.sayHello
}
}