Rasgos sellados en Scala

Rasgos sellados en Scala

Este tutorial discutirá los rasgos sellados con ejemplos de ejecución en Scala.

Rasgos sellados en Scala

Los rasgos en Scala son similares a las interfaces de Java y se utilizan para compartir datos entre clases. Podemos instanciar la clase, pero los rasgos no.

En Scala, los rasgos se pueden marcar como sellados, de forma similar a las clases, para restringir la herencia. Los rasgos sellados y todos los subtipos deben declararse en el mismo archivo para garantizar que se conocen todos los subtipos.

Para definir un rasgo, usamos la palabra clave trait, como:

trait Runnable

De manera similar, para crear rasgos sellados, usamos la clase sellada, como:

sealed trait Runnable

Puntos clave:

  • Un rasgo sellado solo puede extenderse en el mismo archivo.
  • El compilador conoce fácilmente todos los subtipos posibles.
  • Se recomienda utilizar caracteres sellados solo si el número de posibles subtipos es finito y conocido de antemano.

Crear un rasgo sellado en Scala

Entendamos creando un rasgo sellado en Scala.

import scala.collection.mutable.ArrayBuffer

sealed trait Color {
    val name: String
}

class Black(val name: String) extends Color
class Red(val name: String) extends Color

object MyClass {
    def main(args: Array[String]) {
        val black = new Black("Black")
        val red = new Red("Red")
        val animals = ArrayBuffer.empty[Color]

        animals.append(black)
        animals.append(red)
        animals.foreach(color => println("Color Name: "+color.name))
    }
}

Producción :

Color Name: Black
Color Name: Red
¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete