mixins - 2

/**
 * mixins 混入 在类中 混入其他功能
 *    使用 mixins 可以实现类似多继承的功能
 * 
 *    1 只能继承 自 Object 不能继承其他类
 *    2 不能有构造函数
 *    3 一个类可以mixins 多个 mixins 类
 *    4 mixins 不是继承 也不是接口 而是一种全新的特性
*/

class Person {
  String name;
  num age;
  Person(this.name, this.age);
  printInfo() {
    print('${this.name}----${this.age}---这是一个person类');
  }

  void run() {
    print('Person run');
  }
}

class A {
  String info = " this is A";
  void printA() {
    print("printA");
  }

  void run() {
    print('A run');
  }
}

class B {
  void printB() {
    print("printB");
  }

  void run() {
    print('B run');
  }
}

// class C with Person, A, B {}

class C extends Person with A, B {
  C(String name, num age) : super(name, age);
}

void main() {
  C c = new C("张三", 20);

  // c.printInfo();
  // c.printA();
  // c.printB();

  // print(c.info); //  this is A
  c.run(); // B run
}
posted @ 2021-07-29 21:10  13522679763-任国强  阅读(24)  评论(0)    收藏  举报