如果在父類中,有某些方法無法立即實現,而需要依賴不同的子類來覆蓋,重寫實現不同的方法。此時,可以將父類中的這些方法編寫成只含有方法簽名,不含方法體的形式,這種形式就叫做抽象方法;
乙個類中,如果含有乙個抽象方法或抽象field,就必須使用abstract將類宣告為抽象類,該類是不可以被例項化的;
在子類中覆蓋抽象類的抽象方法時,可以不加override關鍵字;
舉例說明:
// 抽象類
abstract
class
person()
class
student
(name:string)
extends
person()
object student
}
注意:
在scala中覆蓋乙個抽象類中字段時,可以不寫override
使用var定義的抽象字段只能使用var覆蓋
使用val定義的抽象字段只能使用val覆蓋
抽象類不一定有抽象欄位或抽象方法,只需要新增abstract關鍵字
有抽象字段一定是抽象類
重寫字段的實質是在重寫字段的setter、getter方法
抽象類中可以有非抽象的方法
scala實現抽象工廠
package com.linewell.modeldesgin.abstractfactory created by ctao on 2015 8 8.抽象工廠模式 工廠特質 trait skinfactory 按鈕特質 trait button 文字框特質 trait textfield 春天 ...
scala之 控制抽象
package com.shufang.scala02 什麼是抽象控制?1 抽象控制是乙個方法,但是方法的引數a是乙個函式 2 函式a的沒有引數,也沒有返回值 主要目的 在乙個方法中呼叫某個 塊,也可一理解成 unit的匿名函式,可以簡寫成 unit object testabstractcontr...
Scala抽象型別
1 package big.data.analyse.scala23 import scala.io.45 6 抽象型別 7 created by zhen on 2019 1 6.8 9trait reader 14class filereader extends reader 19object ...