1、代码示例
package com.yy.base
/**
* case class 示例
*/
abstract class Person
case class Student(name:String,sno:Int) extends Person
case class Teacher(name:String,tno:Int) extends Person
case class None(name:String) extends Person
object CaseClassTest extends App {
def caseClassMatch(p:Person) = p match{
case Student(name,sno) => println(name + " is a student,sno is:" + sno)
case Teacher(name,tno) => println(name + " is a teacher,tno is:" + tno)
case None(name) => println("None matched")
}
val p = Student("yy",20151214)
caseClassMatch(p)
}
2、结果
yy is a student,sno is:20151214
注意,当一个类被生成为case class 时,scala会默认作如下工作:
(1)如果参数不加var/val修改,默认为val。
(2)自动创建伴生对象,实现apply方法&#x