教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Scala特質(zhì)和Java接口有什么區(qū)別?Scala特質(zhì)創(chuàng)建

更新時間:2023年06月09日18時17分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

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

trait traitName

上述語法格式中,關(guān)鍵字trait主要用于創(chuàng)建特質(zhì);traitName為特質(zhì)的名稱。下面,創(chuàng)建一個特質(zhì)Animal,演示類繼承特質(zhì)并訪問特質(zhì)中方法的操作。具體代碼如下所示。

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

0 分享到:
和我們在線交談!