Dart 初始化列表

738 阅读1分钟
class A {
  A() {print("I am A.");}
}
class B extends A {
  int age; String name;
  B(a, this.name)
      : age = a > 0 ? a : 10,
        assert(name.isNotEmpty),
        super() {
    print("I am B.");
  }
}

B类构造函数后的冒号后面的内容就是初始化列表。

注意事项:
  • 不同的初始化实例变量之间使用逗号隔开;
  • 初始化列表中可以使用assert判断参数;
  • 父类构造器也是初始化列表而且必须写在最后;
  • 调用B类的构造函数时,先按顺序执行初始化列表内容,然后再执行“{}”内的内容。