Versiegelte Eigenschaften in Scala

Mohammad Irfan 21 Juni 2023
Versiegelte Eigenschaften in Scala

In diesem Tutorial werden die versiegelten Merkmale mit laufenden Beispielen in Scala erläutert.

Versiegelte Eigenschaften in Scala

Traits in Scala ähneln den Schnittstellen von Java und werden verwendet, um Daten zwischen Klassen auszutauschen. Wir können Klasse instanziieren, aber Eigenschaften können das nicht.

In Scala können Eigenschaften ähnlich wie Klassen als versiegelt markiert werden, um die Vererbung einzuschränken. Versiegelte Merkmale und alle Subtypen müssen in derselben Datei deklariert werden, um sicherzustellen, dass alle Subtypen bekannt sind.

Um ein Merkmal zu definieren, verwenden wir das Schlüsselwort trait, wie:

trait Runnable

In ähnlicher Weise verwenden wir zum Erstellen von versiegelten Merkmalen die Klasse versiegelt, wie zum Beispiel:

sealed trait Runnable

Kernpunkte:

  • Ein versiegeltes Merkmal kann nur in derselben Datei erweitert werden.
  • Der Compiler kennt problemlos alle möglichen Untertypen.
  • Es wird empfohlen, versiegelte Merkmale nur dann zu verwenden, wenn die Anzahl der möglichen Subtypen endlich und im Voraus bekannt ist.

Erstellen Sie eine versiegelte Eigenschaft in Scala

Lassen Sie uns verstehen, indem wir in Scala ein versiegeltes Merkmal erstellen.

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))
    }
}

Ausgang:

Color Name: Black
Color Name: Red