Scala抽象方法

2021-09-25 03:18:01 字數 627 閱讀 7923

如果在父類中,有某些方法無法立即實現,而需要依賴不同的子類來覆蓋,重寫實現不同的方法。此時,可以將父類中的這些方法編寫成只含有方法簽名,不含方法體的形式,這種形式就叫做抽象方法;

乙個類中,如果含有乙個抽象方法或抽象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 ...