我爱模板网 > 建站教程 > dart >  dart9:dart mixin的with混入正文

dart9:dart mixin的with混入

dart9:dart mixin的with混入:接口 implements 和 mixin的with混入,都可以继承,但是,implements继承后,必须强制重写继承类所有的方法,而混入只需要重写自需要的方法即可。


void main() {
  Cat cat = Cat();
  cat.printInfo();
  cat.walk();

  Dove dove = Dove();
  dove.printInfo();
  dove.walk();
  dove.fly();

  Duck duck = Duck();
  duck.printInfo();
  duck.walk();
  duck.fly();
  duck.swim();
}

//猫继承动物类,同时混入行走类
class Cat extends Mammal with Walker {
  void printInfo() {
    print('我是一只猫');
  }
}

//蝙蝠继承自鸟类,同时混入行走类和飞类
class Dove extends Bird with Walker, Flyer {
  void printInfo() {
    print('我是一只蝙蝠');
  }
}

//鸭子类继承自鸟类,同时混入行走类、飞类和游泳类
class Duck extends Bird with Walker, Flyer, Swimmer {
  void printInfo() {
    print('我是一只鸭子');
  }
}

abstract class Animal {}

abstract class Mammal extends Animal {}

abstract class Bird extends Animal {}

abstract class Fish extends Animal {}

//通过抽象类和工厂方法返回null可以实现不需要实例化
abstract class Walker {
  factory Walker._() => null;

  void walk() {
    print('我会走路');
  }
}

abstract class Swimmer {
  factory Swimmer._() => null;

  void swim() {
    print('我会游泳');
  }
}

abstract class Flyer {
  factory Flyer._() => null;

  void fly() {
    print('我会飞');
  }
}

//下面的写法必须要实例化
// class Walker {
//   void walk() {
//     print('我会走路');
//   }
// }

// class Swimmer {
//   void swim() {
//     print('我会游泳');
//   }
// }

// class Flyer {
//   void fly() {
//     print('我会飞');
//   }
// }



部分素材资源来源网站,本站提供免费下载,如有侵权请联系站长马上删除!
上一篇:dart笔记8:dart abstract抽象类和接口实现多继承效果 下一篇:dart笔记10:自定义异常
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
选择头像:
最新评论

猜你喜欢