用sealed修饰的类或者特质
约束:不能在类定义文件之外定义它的子类
作用
- 避免滥用继承
- 用在模式匹配中
sealed abstract class Furniture case class Couch() extends Furniture case class Chair() extends Furniture object SealedDemo { def findPlaceToSite(furniture: Furniture): String = { furniture match { case a: Couch => "lie on the couch" case a: Chair => "lie on the chair" // case _=>"default" } } val chair = Chair() def main(args: Array[String]): Unit = { println(findPlaceToSite(chair)) } } |