Microsoft Windows [版本 10.0.17763.1282]
(c) 2018 Microsoft Corporation。保留所有权利。
c:\desktop>scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_112).
Type in expressions for evaluation. Or try :help.
/**
* case class和case object的区别
* case class: 有参
* case object: 无参
*/
scala> :paste
// Entering paste mode (ctrl-D to finish)
abstract class Person
case class Student(age: Int) extends Person
case class Teacher(age: Int, salary: Double) extends Person
case object Officer extends Person
def getAction(p: Person){
println(p.toString)
}
// Exiting paste mode, now interpreting.
defined class Person
defined class Student
defined class Teacher
defined object Officer
getAction: (p: Person)Unit
scala> val s = new Student(18)
s: Student = Student(18)
scala> getAction(s)
Student(18)
scala> val t = new Teacher(20, 1000)
t: Teacher = Teacher(20,1000.0)
scala> getAction(t)
Teacher(20,1000.0)
scala> val o = Officer
o: Officer.type = Officer
scala> getAction(o)
Officer