更新時間:2023-08-02 來源:黑馬程序員 瀏覽量:

在Scala中,Trait(特質)的功能類似于Java中的接口,但Trait的功能比Java中的接口強大。例如,Trait可以對定義字段和方法進行實現(xiàn),而接口卻不能。Scala中的Trait 可以被類和對象(Objects)使用關鍵字extends來繼承。
創(chuàng)建特質的語法格式如下:
trait traitName
上述語法格式中,關鍵字trait主要用于創(chuàng)建特質;traitName為特質的名稱。
下面,創(chuàng)建一個特質Animal,演示類繼承特質并訪問特質中方法的操作。具體代碼如下所示。
trait Animal {
//沒有實現(xiàn)
def speak()
def listen (): Unit ={
}
def run(): Unit ={
println("I'm running")
}
}
class People extends Animal {
override def speak (): Unit ={
println("I'm speaking English")
}
}
object Peoplel{
def main (args: Array[String]): Unit = (
var people =new Feople
people.speak()
people.ihpen ()
people.run ()
}
}上述代碼中,第1~7行代碼創(chuàng)建了一個特質Animal,并在該特質中定義了3個方法speak()、listen()和run();第10~12行代碼創(chuàng)建了一個類People并繼承特質Animal,重寫特質中的方法speak();第15~20行代碼是主方法main(),在主方法中創(chuàng)建People類的實例對象people,再使用實例對象訪問特質Animal中的方法。