dart: mixin

作者: 李小轰 | 来源:发表于2021-09-06 10:54 被阅读0次

    最近用到了Mixin,记录一下使用特性:

    Mixin可以理解为另辟捷径的多继承实现。与单继承兼容,是继承能力的一种增强工具。

    特性1:父类约束

    当声明一个 mixin 时, on 后面的类是使用 这个mixin 的父类约束。一个类若是要 with 这个 mixin,则这个类必须继承或实现这个 mixin 的父类约束



    需要添加继承父类约束:

    class Child extends Super with MyMixin{}
    
    特性2:就远命中原则

    当继承多个mixinmixin内重写覆盖了同一个方法,则调用方法时会命中最后withmixin对方方法。

    class Super {
      void log() {
        print("super.log");
      }
    }
    
    mixin MyMixin on Super {
      void log() {
        print("MyMixin.log");
      }
    }
    
    mixin MyMixin2 on Super {
      void log() {
        print("MyMixin2.log");
      }
    }
    
    class Child extends Super with MyMixin, MyMixin2 {}
    
    void main() {
      new Child().log();
    }
    

    打印结果为:
    MyMixin2.log

    相关文章

      网友评论

        本文标题:dart: mixin

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