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)
}

 

posted @ 2016-01-08 15:30  双子流云  阅读(234)  评论(0编辑  收藏  举报