sealed abstract
When reading source code I have come across the sealed
keyword in Scala programs.
Its actually a great concept:
Traits and classes can be marked sealed which means all subtypes must be declared in the same file. This assures that all subtypes are known.
sealed trait User {
def email: String
def name: String
}
class FreeUser extends User {
def email: String = ???
def name: String = ???
}
class PremiumUser extends User {
def email: String = ???
def name: String = ???
}