全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

Scala中怎樣創(chuàng)建一個(gè)Trait(特質(zhì))?Trait語(yǔ)法介紹

更新時(shí)間:2023-08-02 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

在Scala中,Trait(特質(zhì))的功能類(lèi)似于Java中的接口,但Trait的功能比Java中的接口強(qiáng)大。例如,Trait可以對(duì)定義字段和方法進(jìn)行實(shí)現(xiàn),而接口卻不能。Scala中的Trait 可以被類(lèi)和對(duì)象(Objects)使用關(guān)鍵字extends來(lái)繼承。

創(chuàng)建特質(zhì)的語(yǔ)法格式如下:

trait traitName

上述語(yǔ)法格式中,關(guān)鍵字trait主要用于創(chuàng)建特質(zhì);traitName為特質(zhì)的名稱(chēng)。

下面,創(chuàng)建一個(gè)特質(zhì)Animal,演示類(lèi)繼承特質(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'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)建了一個(gè)特質(zhì)Animal,并在該特質(zhì)中定義了3個(gè)方法speak()、listen()和run();第10~12行代碼創(chuàng)建了一個(gè)類(lèi)People并繼承特質(zhì)Animal,重寫(xiě)特質(zhì)中的方法speak();第15~20行代碼是主方法main(),在主方法中創(chuàng)建People類(lèi)的實(shí)例對(duì)象people,再使用實(shí)例對(duì)象訪問(wèn)特質(zhì)Animal中的方法。

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!