1、静态变量(类变量和全局变量)是延迟初始化的。
class Cat {}
class DeadCat extends Cat {
DeadCat() {
print("Now I am dead.");
}
}
class LiveCat extends Cat {
// 类变量
static DeadCat? afterDie = DeadCat();
LiveCat() {
print("I am alive!");
}
}
// 全局变量
Cat cat = LiveCat();
main() {
LiveCat.afterDie = null;
cat = Cat();
print("Hello world!");
}
日志输出:
flutter: Hello world!
上述 DeadCat 和 LiveCat 的构造方法都没有执行,只有真正访问静态变量时,才会执行对应代码。
main() {
LiveCat.afterDie;
cat;
print("Hello world!");
}
日志输出:
flutter: Now i am dead.
flutter: I am alive!
flutter: Hello world!