Sealed Classes Flashcards

1
Q

Como definirias una sealed class y cuales son sus 3 condiciones fundamentales que debe cumplir?

A

Una sealed class es una clase que posee varias subclases

  • Constructor siempre privado, siempre es asi por defecto y no hay que tocar nada
  • Todas las subclases se deben declarar en el mismo file que la superclase
  • Son por defecto abstractas, no se pueden crear objetos o instancias de este tipo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cual es el caso de uso mas normal en las sealed classes y pq?

A

Usarlas con un when ya que podemos el compilador conoce el numero de subclases y usando el when abarcamos todas las opciones o subclases de la sealed class. Si nos falta alguna el compilador nos avisa. Esto nos permite evitar el uso del else

```kotlin
sealed class Op
class Suma(val valor: Int) : Op()
class Restar(val valor: Int) : Op()
object Dividir2 : Op()

fun (valor: Int, op: Op) : Int = when(op){
	is Suma -> valor + op.valor
	is Resta -> valor - op.valor
	Dividir2 -> valor/2

~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Diferencia entre enum y sealed class

A

Ambos son abstractos y no podemos instanciar objetos de este tipo

Ambos albergan un set de valores

La unica diferencia es que en un enumerado solo tenemos un objeto por tipo mientras que en las sealed podemos tener varios objetos de la misma clase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly