美文网首页dart
Flutter/Dart - Dart中一个类实现多个接口 以及

Flutter/Dart - Dart中一个类实现多个接口 以及

作者: 沫之 | 来源:发表于2020-07-13 15:08 被阅读0次

    Dart中implements实现多个接口

    abstract class A {
      String name;
      printA();
    }
    
    abstract class B {
      printB();
    }
    
    class C implements A,B{
      @override
      String name;
    
      @override
      printA() {
       print('printA');
      }
    
      @override
      printB() {
        // TODO: implement printB
        return null;
      }
      
    }
    
    main(List<String> args) {
       C c = new C();
       c.printA();
    }
    
    

    Dart中的mixins 使用

    mixins的中文意思就是混入,就是在类中混入其他功能

    在dart中可以使用mixins实现类似多继承的功能

    因为mixins可以使用的条件,随着dart版本一直在变,这里讲的是dart2.x中使用mixins的条件:

    1.作为mixins的类只能继承自object,不能继承其他类

    2.作为mixins的类不能有构造函数

    3.一个类可以mixins多个mixin类

    4.mixins绝不是继承,也不是接口,而是一种全新的特性

    class A {
      String info = 'a';
      printA() {
        print('printA');
      }
    }
    
    class B {
      printB() {
        print('printB');
      }
    }
    
    class C with A, B {}
    
    void main() {
      C c = new C();
      c.printA();
      c.printB();
      print(c.info);
    }
    
    

    Dart中的mixins 实现类似多继承功能

    class Person {
      String name;
      Person(this.name);
    }
    
    class A extends Person{ //在A继承了Person后, 这个时候不能再进行mixins
      String info = 'a';
      printA() {
        print('printA');
      }
    }
    
    class B {
      // B({}) //不能在类里面写构造函数,否则也无法进行mixins
      printB() {
        print('printB');
      }
    }
    
    class C extends Person with A, B {} //---划重点----才可以继承Person类,Person类中也可以加构造函数
    
    void main() {
      C c = new C();
      c.printA();
      c.printB();
      print(c.info);
    }
    

    Dart中的mixins 的类型

    class A {
      String info = 'a';
      printA() {
        print('printA');
      }
    }
    
    class B {
      printB() {
        print('printB');
      }
    }
    
    class C with A, B {}
    
    void main() {
      C c = new C();
      print(c is C); //true
      print(c is A); //true
      print(c is B); //true
    }
    

    相关文章

      网友评论

        本文标题:Flutter/Dart - Dart中一个类实现多个接口 以及

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