更新時(shí)間:2023年06月09日18時(shí)17分 來(lái)源:傳智教育 瀏覽次數(shù):
在Scala中,Trait(特質(zhì))的功能類似于Java中的接口,但Trait的功能比Java中的接強(qiáng)大。例如,Trait可以對(duì)定義字段和方法進(jìn)行實(shí)現(xiàn),而接口卻不能。Scala中的Trait可以被類和對(duì)象(Objects)使用關(guān)鍵字extends來(lái)繼承。創(chuàng)建特質(zhì)的語(yǔ)法格式如下:
trait traitName
上述語(yǔ)法格式中,關(guān)鍵字trait主要用于創(chuàng)建特質(zhì);traitName為特質(zhì)的名稱。下面,創(chuàng)建一個(gè)特質(zhì)Animal,演示類繼承特質(zhì)并訪問(wèn)特質(zhì)中方法的操作。具體代碼如下所示。
trait Animal {
//沒(méi)有實(shí)現(xiàn)
def speak()
def listen(): Unit ={
}
def run(): Unit ={
println("I'm running")
}
}
class People extends Animal {
override def speak(): Unit ={
println("I'n speaking English")
}
}
object People{
def main (args: Array[String]): Unit = (
var people mnew Beople
people.speak()
people.listen()
people.run ()
}
}
上述代碼中,第1~7行代碼創(chuàng)建了一個(gè)特質(zhì)Animal,并在該特質(zhì)中定義了3個(gè)方法Speak()、listen()和run();第10~12行代碼創(chuàng)建了一個(gè)類People 并繼承特質(zhì)Animal,重寫特質(zhì)中的方法Speak();第15~20行代碼是主方法main(),在主方法中創(chuàng)建People類的實(shí)例對(duì)象people,再使用實(shí)例對(duì)象訪問(wèn)特質(zhì)Animal中的方法。