Clase interna anónima de Scala

1. Información general

Una clase interna anónima es un objeto de subclase sin nombre que hereda una determinada clase y se puede usar directamente para crear un objeto de ejemplo. Las clases internas anónimas se utilizan ampliamente en el código fuente de Spark. Después de aprender este contenido, es muy útil para nosotros ver el código fuente subyacente de Spark.

2. Gramática

new 类名(){
    
    
	//重写类中所有的抽象内容
}

Nota: En el formato anterior, si la lista de parámetros del constructor principal de la clase está vacía, se pueden omitir los paréntesis.

3. Escenarios de uso

  • Cuando el método de objeto (método de miembro) se llama solo una vez
  • Puede pasarse como parámetro de método

4. Caso

demanda:

  1. Cree una clase abstracta de Persona y agregue un método abstracto de empleado sayHello
  2. Defina un método show (), que necesita pasar un objeto de tipo Person, luego llame a un objeto de subclase de la clase Person y llame al método sayHello de la clase Person
  3. Agregue el método principal, cree un objeto de subclase de la clase Person a través de una clase interna anónima y llame al método sayHello () de la clase Person
  4. Llamar al método show ()

Código:

object demo {
    
    
  abstract class Person{
    
    
    def sayHello();

  }

  def main(args: Array[String]): Unit = {
    
    
    //对成员方法仅调用一次:
    new Person {
    
    
      override def sayHello(): Unit = {
    
    
        println("匿名内部类的sayHello()方法被调用了!")
      }

    }.sayHello();

    //作为方法的参数进行传递:
    show(new Person {
    
    
      override def sayHello(): Unit = println("作为方法的参数进行传递sayHello()方法被调用了!")
    })
  }
  def show(person: Person): Unit ={
    
    
    person.sayHello();
  }
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/zh2475855601/article/details/114690426
Recomendado
Clasificación