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

全國(guó)咨詢/投訴熱線:400-618-4000

Scala面向?qū)ο笥心男┨匦裕?/h1>

更新時(shí)間:2022年06月17日18時(shí)34分 來(lái)源:傳智教育 瀏覽次數(shù):

類(lèi)與對(duì)象

無(wú)論是在Scala中還是Java中,類(lèi)都是對(duì)象的抽象,而對(duì)象都是類(lèi)的具體實(shí)例;類(lèi)不占用內(nèi)存,而對(duì)象占用存儲(chǔ)空間。由于面向?qū)ο蟮暮诵氖菍?duì)象,若想要在應(yīng)用程序中使用對(duì)象,就必須得先創(chuàng)建一個(gè)類(lèi)。類(lèi)是用于描述一組對(duì)象的共同特征和行為。

創(chuàng)建類(lèi)的格式

class類(lèi)名[參數(shù)列表]

創(chuàng)建對(duì)象的格式

類(lèi)名對(duì)象名稱=new類(lèi)名0;

繼承

Scala和Java類(lèi)似,只允許繼承一個(gè)父類(lèi)。Java只能繼承父類(lèi)中非私有的屬性和方法,而Scala可以繼承父類(lèi)中的所有屬性和方法。

在Scala子類(lèi)繼承父類(lèi)的時(shí)候,有以下幾點(diǎn)需要注意

如果子類(lèi)要重寫(xiě)一個(gè)父類(lèi)中的非抽象方法,則必須使用override關(guān)鍵字,否則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。

如果子類(lèi)要重寫(xiě)父類(lèi)中抽象方法時(shí),則無(wú)需使用override關(guān)鍵字

單例對(duì)象和伴生對(duì)象

Scala中提供了object這個(gè)關(guān)鍵字用來(lái)實(shí)現(xiàn)單例模式,使用關(guān)鍵字object創(chuàng)建的對(duì)象為單例對(duì)象。

在一介源文件中有一個(gè)類(lèi)和一個(gè)單例對(duì)象,若單例對(duì)象名與類(lèi)名相同,則把這個(gè)單例對(duì)象稱作伴生對(duì)象(companion object),這個(gè)類(lèi)則被稱為是單例對(duì)象的伴生類(lèi)(companion class)。

類(lèi)和伴生對(duì)象之間可以相互訪問(wèn)私有的方法和字段。

特質(zhì)

在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ì)的格式

trait traitName
0 分享到:

和我們?cè)诰€交談!