| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- class Spacecraft {
- String name;
- DateTime launchDate;
- // 构造函数,带有可以直接为成员变量赋值的语法糖。
- Spacecraft(this.name, this.launchDate) {
- // 这里可以实现初始化代码。
- }
- // 命名构造函数,转发到默认构造函数。
- Spacecraft.unlaunched(String name) : this(name, null);
- // 只读的非 final 的属性
- // ? ; isnull
- int get launchYear => launchDate?.year;
- // 方法。
- void describe() {
- print('宇宙飞船:$name');
- if (launchDate != null) {
- // ignore: omit_local_variable_types
- int years = DateTime.now().difference(launchDate).inDays ~/ 365;
- print('发射时间:$launchYear ($years years ago)');
- } else {
- print('尚未发射');
- }
- }
- }
- class Orbiter extends Spacecraft {
- //属性
- num altitude;
- Orbiter.Check(this.altitude) : super(null, null);
- Orbiter(String name, DateTime launchDate, this.altitude)
- : super(name, launchDate);
- //
- @override
- String toString() {
- return 'Orbiter{altitude: $altitude}';
- }
- }
|