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