Dart 面向对象 implements[接口],abstract[抽象类]

void main(List<String> arguments) {
  var a = A();
}

///抽象类只会复写父类中[没有方法体]的方法,只有抽象类可以定义没有方法体的方法。
class A extends B with C, D {
  @override
  b() {
    // TODO: implement b
    throw UnimplementedError();
  }

  @override
  c() {
    // TODO: implement c
    throw UnimplementedError();
  }
}

///只使用implements时必须重写父类里面的所有方法。
class AA implements B,A {
  @override
  b() {
    // TODO: implement b
    throw UnimplementedError();
  }

  @override
  bb() {
    // TODO: implement bb
    throw UnimplementedError();
  }

  @override
  c() {
    // TODO: implement c
    throw UnimplementedError();
  }

  @override
  cc() {
    // TODO: implement cc
    throw UnimplementedError();
  }

  @override
  dd() {
    // TODO: implement dd
    throw UnimplementedError();
  }
}

///-==================================
abstract class B {
  bb() {
    print('这是有方法体的方法');
  }

  b(); //没有方法体
}

abstract class C {
  cc() {
    print('这是有方法体的方法');
  }

  c(); //没有方法体
}

class D {
  dd() {
    print('这是dd中有方法体的方法');
  }
}
THE END
喜欢就支持一下吧
点赞12 分享