#Kata Sealed classes y sealed traits en Scala.

En este post te voy a explicar como funcionan los sealed traits y las sealed classes en Scala.

Primeros pasos.

La palabra reservada sealed sirve para restringir la herencia, no la confundas con final, si bien las dos se relacionan con la herencia, estas no son lo mismo. Final restringe que cualquier clase puede heredar, no importando donde este. En cambio, sealed solo restringe la herencia a clases fuera del archivo donde se declara la clase padre. Lo mismo aplica para los sealed traits.

¿Para qué sirve sealed?.

Sealed te va a servir para crear conjuntos conocidos de clases. Cuando trabajas con pattern matching, lo ideal es que conozcas todas las posibles mutaciones de una clase, si la clase base en cuestión está abierta a ser heredada, entonces, es posible que tengas comportamientos no esperados. En otros lenguajes tienes enums que te pueden servir para definir mejor estos conjuntos. Por desgracia, en Scala, los enums no pueden ser usados para definir un conjunto con pattern matching.

Declaración de clases.

En el siguiente ejemplo tengo dos archivos, uno que contiene la declaración de las sealed class, y el otro que posee el Main method de la aplicación. Al intentar implementar nuevo funcionamiento, notarás los siguientes errores.

 

Sealed classes.

 

 

 

Gustavo Sánchez
Últimas entradas de Gustavo Sánchez (ver todo)

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.