case class两个特性
- 构造器中每一个类型都为val,不建议用var;
- 不用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) }