scala入门 case class

case class两个特性

  1. 构造器中每一个类型都为val,不建议用var;
  2. 不用new就可以直接产生对象(用apply)
abstract class Language
case class Chinese(name:String) extends Language
case class English(name:String) extends Language

object MainClass extends App{
   def chooseLanguage(language:Language): Unit = {
     language match{
       case Chinese(_) => println("chinese")  //_代表占位符,表示传入的name为任意值
       case English(_) => println("English")
       case _ => println("others")
     }
   }
  val chinese = new Chinese("name")
  chooseLanguage(chinese)
}
原文地址:https://www.cnblogs.com/liuyunAlex/p/5113398.html