ventajas instanciar desventajas crear clases clase abstractas scala class abstract sealed

instanciar - El resumen de Scala contra la clase abstracta



instanciar clases scala (2)

Como se answered , todas las subclases heredadas directamente de una clase sellada (abstracta o no) deben estar en el mismo archivo. Una consecuencia práctica de esto es que el compilador puede advertir si la coincidencia de patrón está incompleta. Por ejemplo:

sealed abstract class Tree case class Node(left: Tree, right: Tree) extends Tree case class Leaf[T](value: T) extends Tree case object Empty extends Tree def dps(t: Tree): Unit = t match { case Node(left, right) => dps(left); dps(right) case Leaf(x) => println("Leaf "+x) // case Empty => println("Empty") // Compiler warns here }

Si el Tree está sealed , entonces el compilador lo advierte a menos que la última línea esté sin comentar.

¿Cuál es la diferencia entre la clase Scala sealed abstract y sealed abstract ?


La diferencia es que todas las subclases de una clase sellada (ya sea abstracta o no) deben estar en el mismo archivo que la clase sellada.