下边界
scala> class Father(val name:String)
defined class Father
scala> class Child(name:String) extends Father(name)
defined class Child
scala> :paste
// Entering paste mode (ctrl-D to finish)
def getIdCard[R >: Child](p :R){
println(p.getClass)
if(p.getClass == classOf[Child]) println("please tell us your father's name")
else if(p.getClass == classOf[Father]) println("pleanse tell us your child's name")
else println("sorry you can't get this Idcard")
}
// Exiting paste mode, now interpreting.
getIdCard: [R >: Child](p: R)Unit
scala>
scala> val f = new Father("fa")
f: Father = Father@5ec88f9e
scala> val c = new Child("ch")
c: Child = Child@b5d9f1e
scala> getIdCard(f)
class $line3.$read$$iw$$iw$Father
pleanse tell us your child's name
scala> getIdCard(c)
class $line4.$read$$iw$$iw$Child
please tell us your father's name
scala> getIdCard("dd")
class java.lang.String
sorry you can't get this Idcard