黑猴子的家 Scala 當做介面使用的特質

2021-09-24 04:10:18 字數 575 閱讀 3115

特質中沒有實現的方法就是抽象方法。類通過extends繼承特質,通過with可以混入多個特質。

trait logger 

class consolelogger extends logger with cloneable with serializable

}

consolelogger類混入了三個特質,雖然有extends 關鍵字,但是特質用混入,就像介面用實現,而不是介面繼承,只能說介面能夠繼承介面,但是類是不能繼承介面的,類只能實現介面,那麼特質是可以繼承特質的,類和特質的結合叫做混入,特質混入這個類,那麼這個類就持有了這些特質,然後複寫這些方法就可以了

class dog extends animal with a with b with c

//可以看做

dog extends (animal with a with b with c)

//可以寫作

type mix = (animal with a with b with c)

class dog extends mix

黑猴子的家 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...

黑猴子的家 Scala 佇列 Queue

佇列資料訪問,符合先進先出策略 1 佇列的建立 import root scala.collection.mutable import scala.collection.mutable val q1 new mutable.queue int println q1 2 佇列元素的追加 q1 1 pr...

黑猴子的家 Scala 密封類

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