這個成語出現在樓梯書中好幾次:「val a:A = new B」,有什麼意義? (?)
val b:A = new B
或
val b = new B
val b2:A = b
除了想在教科書做出一些點,你爲什麼要申報類型不同於推斷類型的東西?
順便說一句,這個任何名字?
這個成語出現在樓梯書中好幾次:「val a:A = new B」,有什麼意義? (?)
val b:A = new B
或
val b = new B
val b2:A = b
除了想在教科書做出一些點,你爲什麼要申報類型不同於推斷類型的東西?
順便說一句,這個任何名字?
我認爲它與接口編程的習慣相似。通過這樣做
val b:A = new B
您確保這一點後,你不靠別的比A
提供的接口。也就是說,如果您決定更改爲b:A = new C
,則不會中斷。
它可以是有用的:
對於更復雜的實例,它確保推斷的類型是正確的。例如
sealed trait Answer
case object Yes extends Answer
case object No extends Answer
scala> val a = List(Yes, Yes, No)
a: List[Product with Serializable with Answer] = List(Yes, Yes, No)
scala> val b: List[Answer] = List(Yes, Yes, No)
b: List[Answer] = List(Yes, Yes, No)
我會說這就是所謂的多態 – maxmc
@maxmc但對象仍然是多態的,沒有它.. – 2012-06-08 14:53:46
@maxmc你細說究竟這是多態性: - ?像pst我也相信這不完全是多態的意思...... –