特质(trait)和类(class)可以用sealed标记为密封的,这意味着其所有子类都必须与之定义在相同文件中

    1. sealed abstract class Furniture
    2. case class Couch() extends Furniture
    3. case class Chair() extends Furniture
    4. def findPlaceToSit(piece: Furniture): String = piece match {
    5. case a: Couch => "Lie on the couch"
    6. case b: Chair => "Sit on the chair"
    7. }