W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
和 Java 稍有不同的一點(diǎn)是,Scala 中成員函數(shù)和成員變量地位幾乎相同,而且也處在同一個(gè)命名空間,也就是 Scala 中不允許定義同名的成員函數(shù)和成員變量,但帶來的一個(gè)好處是,可以使用成員變量來重載一個(gè)不帶參數(shù)的成員函數(shù)。比如,接著前面的例子,你可以通過一個(gè)成員變量來實(shí)現(xiàn)基類中定義的抽象函數(shù) contents。
class ArrayElement(conts: Array[String]) extends Element {
val contents: Array[String] = conts
}
可以看到,這是使用成員變量來實(shí)現(xiàn)基類中不帶參數(shù)的抽象函數(shù)的一個(gè)非常恰當(dāng)?shù)睦印?Scala 中的這種實(shí)現(xiàn)是 Java 語(yǔ)言所不支持的,一般來說只有兩個(gè)不同的命名空間來定義類,而 Java 可以有四個(gè),Scala 支持的兩個(gè)命名空間如下:
Scala 把字段和方法放進(jìn)同一個(gè)命名空間的理由很清楚,因?yàn)檫@樣你就可以使用 val 重載無參數(shù)的方法,
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: