黑猴子的家 Scala 擴充套件類的特質

2021-09-27 11:03:35 字數 657 閱讀 8840

總結

(1)特質可以繼承自類,以用來拓展該類的一些功能

(2)所有混入該特質的類,會自動成為那個特質所繼承的超類的子類

(3)如果混入該特質的類,已經繼承了另乙個類,不就矛盾了?注意,只要繼承的那個類是特質超類的子類即可。

1、特質可以繼承自類,以用來拓展該類的一些功能

//特質可以繼承自類,以用來拓展該類的一些功能

trait loggerexception extends exception

}

2、所有混入該特質的類,會自動成為那個特質所繼承的超類的子類
//所有混入該特質的類,會自動成為那個特質所繼承的超類的子類

override def getmessage: string = "哦 上帝 我要踢爆他的屁股!!!"

}

3、如果混入該特質的類,已經繼承了另乙個類,不就矛盾了?注意,只要繼承的那個類是特質超類的子類即可

override def getmessage = "哦,我的上帝,我要踢爆他的屁股!"

} override def getmessage = "哦,我的上帝,我要踢爆他的屁股!"

}*/object mainc

}

黑猴子的家 Scala 密封類

如果想讓case類的所有子類都必須在申明的該類的相同的檔案中定義,可以將樣例類的通用超類宣告為sealed,叫做密封類,密封就是外部使用者不能在其他檔案中定義子類。不能被繼承只能自己用 sealed abstract class trafficlightcolor case object red e...

黑猴子的家 Scala 超類的構造

類有乙個主構器和任意數量的輔助構造器,而每個輔助構造器都必須以對先前定義的輔助構造器或主構造器的呼叫開始。子類的輔助構造器最終都會呼叫主構造器,只有主構造器可以呼叫超類的構造器。輔助構造器永遠都不可能直接呼叫超類的構造器。在scala的構造器中,你不能呼叫super params class per...

黑猴子的家 Scala 函式變種

1 變種1,乙個引數 第一種 乙個引數 def pla1 a1 string unit 2 變種2,兩個引數 第二種 兩個引數 def pla2 a1 string,a2 string unit pla2 a2 hei a1 haha 3 變種3,引數預設值 第三種 引數預設值 def pla3 a...