來自Java的土地我一直在試圖教自己斯卡拉。最近我在玩弄Int
數據類型,我決定查找的Int類的API here。試圖理解「最終抽象類Int私有擴展在斯卡拉AnyVal
什麼困擾我的是對Int
類的定義,這是abstract final
。
我很抱歉,如果我沒有問這個問題之前,在斯卡拉abstract
和final
意義讀了,但我好奇,所以我馬上打出這篇文章。
所以我想了解的是: 在Scala中abstract
,final
和extends
的語義是不同的嗎? 同樣,據我所知,在Java中,同時不能有abstract
和final
。 那麼如何解釋final abstract class Int private extends AnyVal
?
給出不,他們不是,至少基本上(您仍然無法實例化抽象的,你不能繼承/覆蓋決賽)。 AFAIK,這樣做的原因是,前一段時間Int和其他AnyVal類型只是一個存根,在編譯時由編譯器重寫。他們不是因爲[this commit](https://github.com/scala/scala/commit/4253124eecba6bed38f1dc961c5c4ee39a29f730) –
哦,那是有用的信息。感謝您對我指出 – ilango