有没有一种方法可以从其超类的对象实例化一个类,而无需手动分配所有变量?

时间:2018-11-04 22:25:27

标签: dart

说我有2个班级:

class User {
  String name;
  String age;
  DateTime birthDate;
  User(this.name);
}

class Teacher extends User {
 String className;
 Teacher(String name): super(name);
 Teacher.fromUser(User user, this.className): super(user.name);
}

执行以下操作很容易。但是如果超类有30个字段怎么办?有没有一种方法可以使构造器复制所有变量而不必这样做:

Teacher.fromUser(User user) {
    this.id = user.id;
    this.firstName = user.firstName;
    this.lastName = user.lastName;
    this.gender = user.gender;
    ...

1 个答案:

答案 0 :(得分:0)

不。 无法自动将字段从一个对象复制到另一个对象。

如果有多个需要该行为的类,则可以在copyFrom(User)类上添加一个User,该类将复制所有字段,然后仅在子类上调用this.copyFrom(user)。然后,您至少只需编写一次代码即可。