Scala快速入门--匿名内部类

Posted 一只楠喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala快速入门--匿名内部类相关的知识,希望对你有一定的参考价值。

匿名内部类

匿名内部类的本质

  • 一个没有名字的类,自动构建一个类继承抽象类或者接口,实现可以new一个抽象类或者接口

匿名内部类的定义语法

val 变量名称 = new 抽象类/Trait{
	//重写属性或者方法
}
  • 直接new一个抽象类或者Trait的子类,重写方法后将对象赋值给一个变量

匿名内部类的实现

abstract class Person05 {
  //具体的属性
//  var name:String = "itcast"
//  var age:Int = 20
  //抽象的属性
  var name:String
  var age:Int

  //具体的方法
//  def sayHello = println("Hello,Person ~")
  //抽象的方法
  def sayHello
}

//如果多次构建这个类的实例
class Stduent05 extends Person05 {
  override var name: String = "student"
  override var age: Int = 18

  override def sayHello: Unit = println("Hello,Student ~")
}

object TestStudent05{
  def main(args: Array[String]): Unit = {
    //正常通过构建子类的实例,来实现对抽象类的使用
    val student = new Stduent05
    student.sayHello

    //通过匿名内部类实现new 抽象类:一般用于临时的使用一次抽象类或者接口的方法
    val person = new Person05 {
      override var name: String = "heima"
      override var age: Int = 10

      override def sayHello: Unit = println("Hello, Person ~")
    }
    person.sayHello
  }
}

点个赞嘛!在这里插入图片描述

以上是关于Scala快速入门--匿名内部类的主要内容,如果未能解决你的问题,请参考以下文章

java多线程快速入门

闭包与内部类

Scala快速入门--抽象类的使用

多线程快速入门

Java8新特征之Lambda

jdk8入门