《Flutter之Dart语言基础》

2019-12-25  本文已影响0人  高阿呆

一、抽象类

① Dart中的抽象类和其他语言中的抽象类差不多,都是抽象类不能有自己的实例对象,经常被用作接口的定义。抽象类的关键词abstract,他可以定义一个无方法实现的方法,也可以定义一个有方法实现的方法。
② 继承于抽象类的非抽象子类,必须实现抽象类中无方法实现的方法
③ 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类

abstract class Study {
  void study();
}

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

二、mixins

mixins混入,顾名思义就是在类中混入其他功能,好处是可以自己的方法提供给其他类使用,而不需要成为其他类的父类。在高级语言的单继承中作用明显.
① mixins在多个类层次结构中重用代码的一种方式
② 要使用mixins,在with关键字后面跟上一个或者多个mixin的名字,用逗号隔开,并且要用在extends之后
③ mixins的特征,实现mixins,就创建一个继承Object类的子类(不能继承其他类),不声明构造方法

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

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

三、方法

// 方法的构成
// 返回值类型 + 方法名 + 参数(可选)
// 其中:返回值类型可缺省,也可为void或具体的类型
// 方法名:匿名方法不需要方法名
// 参数:参数类型和参数名,参数类型可缺省
// 私有方法,在方法名前加下划线就是私有方法

void sum(value){
    return value;
}

四、泛型方法

泛型,主要是解决类、接口、方法的复用性、以及对不特定数据类型的支持

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];
  }
}
上一篇下一篇

猜你喜欢

热点阅读