<Flutter之Dart中抽象類>

一、抽象類

① Dart中的抽象類和其他語言中的抽象類差不多,都是抽象類不能有自己的實(shí)例對象,經(jīng)常被用作接口的定義。抽象類的關(guān)鍵詞abstract,他可以定義一個無方法實(shí)現(xiàn)的方法,也可以定義一個有方法實(shí)現(xiàn)的方法。
② 繼承于抽象類的非抽象子類,必須實(shí)現(xiàn)抽象類中無方法實(shí)現(xiàn)的方法
③ 抽象類不一定有抽象方法,有抽象方法的類一定是抽象類

abstract class Study {
  void study();
}

class StudyFlutter extends Study {
  @override
  void study() {
    // TODO: implement study
  }
}

二、mixins

mixins混入,顧名思義就是在類中混入其他功能,好處是可以自己的方法提供給其他類使用,而不需要成為其他類的父類。在高級語言的單繼承中作用明顯.
① mixins在多個類層次結(jié)構(gòu)中重用代碼的一種方式
② 要使用mixins,在with關(guān)鍵字后面跟上一個或者多個mixin的名字,用逗號隔開,并且要用在extends之后
③ mixins的特征,實(shí)現(xiàn)mixins,就創(chuàng)建一個繼承Object類的子類(不能繼承其他類),不聲明構(gòu)造方法

class Test extends Person with Study {
  Test(String name, int age) : super(name, age);

  @override
  void study() {
    // TODO: implement study
  }
}

三、方法

// 方法的構(gòu)成
// 返回值類型 + 方法名 + 參數(shù)(可選)
// 其中:返回值類型可缺省,也可為void或具體的類型
// 方法名:匿名方法不需要方法名
// 參數(shù):參數(shù)類型和參數(shù)名,參數(shù)類型可缺省
// 私有方法,在方法名前加下劃線就是私有方法

void sum(value){
    return value;
}

四、泛型方法

泛型,主要是解決類、接口、方法的復(fù)用性、以及對不特定數(shù)據(jù)類型的支持

class TestGeneric {
  void start() {
    Cache<String> cache1 = Cache();
    cache1.setItem('cache', 'cache');
  }
}

class Cache<T> {
  static final Map<String, Object> _cache = Map();

  void setItem(String key, T value) {
    _cache[key] = value;
  }

  T getItem(String key) {
    return _cache[key];
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容