看看下面的代碼片段:有不同的方法簽名
class C
val c1 = new C { def m1 = "c1 has m1" }
val c2 = new C { def m2 = "c2 has m2" }
c1.m1
c2.m2
//c2.m1
//c1.m2
在REPL運行它,然後你知道我的意思。
我有限的java知識告訴我,在java中,同一類的對象將具有相同的方法signagure,並且就OO而言,java和scala之間沒有太大的區別。 (糾正我,如果我錯了),所以我很驚訝地看到片段是健全的scala代碼。
爲什麼?
感謝Marth,順便說一句,在scala repl中,我使用了:類型c1和:類型c2,結果並沒有給出任何跡象表明特徵在這裏涉及。 – 2014-10-30 10:38:48
匿名類不構成(外部可見)類型的一部分。 – lmm 2014-10-30 11:36:07