W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
上一篇我們定義了我們需要解決的問題,我們首要的任務(wù)是定義 Element 類型,這個類型用來表示一個布局元素。由于每個元素為一個具有二維矩形形狀的字符串,因此我們理所當(dāng)然的可以定義個成員變量 contents,用來表示這個二維布局元素的內(nèi)容。這個元素我們使用一個字符串的數(shù)組來表示,這個數(shù)組的每個字符串元素代表布局的一行。也就是 contents 的類型為 Array[String]。
abstract class Element {
def contents: Array[String]
}
在這個類中,成員 contents 使用了沒有定義具體實現(xiàn)的方法來定義,這個方法稱為一“抽象方法”,一個含有抽象方法的類必須定義成抽象類,也就是使用abstract關(guān)鍵字來定義類。
abstract 修飾符表示所定義的類可能含有一些沒有定義具體實現(xiàn)的抽象成員,因此你不能構(gòu)建抽象類的實例,如果你試圖這么做,編譯器將報錯:
scala> new Element
<console>:9: error: class Element is abstract; cannot be instantiated
new Element
^
后面的文章將繼續(xù)介紹如何創(chuàng)建這個抽象類的子類,你可以構(gòu)造這些子類的具體實例,這是因為這些子類實現(xiàn)了抽象成員。
要注意的是 contents 方法本身沒有使用 abstract 修飾符,一個沒有定義實現(xiàn)的方法就是抽象方法,和 Java 不同的是,抽象方法不需要使用 abstract 修飾符來表示,只要這個方法沒有具體實現(xiàn),就是抽象方法,相反,如果該方法有具體實現(xiàn),稱為“具體(concrete)”方法。
另一個術(shù)語用法需要分辨聲明:declaration 和定義:definition。類 Element 聲明了抽象方法 contents,但當(dāng)前沒有定義具體方法。然而下一節(jié),我們要定義一些具體方法來加強 Element。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: