作者: 高阿呆 | 来源:发表于2019-12-25 10:32 被阅读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];
      }
    }
    

    相关文章

      网友评论

        本文标题:

        本文链接:https://www.haomeiwen.com/subject/ycvfoctx.html