代码:
class Student extends Person {
String _school; // dart 通过下划线定义私有变量
String? city;
String? country;
String name;
// 构造方法
/// this.*** 初始化自己的参数
/// this.city, 可选参数 可以为空
/// this.country 可选参数 如果为空 默认为china
Student(String name, int age, this._school,
{this.city, this.country = 'china'})
: // 初始化列表 这里也可以初始化其他变量
name = '$country.$city',
// 父类构造方法
super(name, age) {
// 构造方法也可以有方法体
print('方法体是可有可无的');
}
// 命名构造方法
Student.cover(Student stu) : super(stu.name, stu.age);
}
/// 所有的类都继承自Object
class Person {
String name;
int age;
/// 标准的构造方法
Person(this.name, this.age);
}
这行代码:
Student.cover(Student stu) : super(stu.name, stu.age);
的Student. 的地方报错
报错:
Non-nullable instance field '_school' must be initialized. (Documentation) Try adding an initializer expression, or add a field initializer in this constructor, or mark it 'late'.
Non-nullable instance field 'name' must be initialized. (Documentation) Try adding an initializer expression, or add a field initializer in this constructor, or mark it 'late'.