Dart中抽象类,被实现和被继承有什么区别?

560 阅读1分钟

抽象类可以有默认的实现方法 当抽象类当做接口的时候,实现抽象方法,必须重写所有方法 当抽象类当做类的时候,继承的时候,必须重新抽象方法

abstract class AbsClass {
 void operator();
 
 /// 抽象类方法可以有自己的实现
 void doSomething() {
  print('doSomething');
 }
}

// 继承抽象类
class AbsClassImpl extends AbsClass {
 
 /// 必须实现抽象类未实现的方法
  @override
  void operator() {
    // TODO: implement operator
  }
}

/// 实现抽象类
class AbsClassImpl2 implements AbsClass {
 ///  当实现抽象类的时候,抽象类的所有方法都被视为为实现的,所以所有方法都要实现一下
  @override
  void doSomething() {
    // TODO: implement doSomething
  }

  @override
  void operator() {
    // TODO: implement operator
  }
}

参考:

【社区说】让代码更 Dart(语言特性与设计模式