У меня есть два класса: Person
и Student
.Student
расширяется Person
.Когда Person
регистрируется как Student
, присваиваются новые свойства Student
.Я хочу передать все достоинства личности ученику.Для этого я создал собственный конструктор: Student.fromPerson(Person person)
Однако у класса Person есть так много свойств, и когда разработчики добавляют свойство Person, они также должны обновить этот конструктор в Student.Есть ли способ автоматически приписать свойства человека своему суперклассу, так как это тот же тип, без записи: : super(fname: person.fname, lname: person.lname);
и перечисления всех свойств?
class Person {
String fname;
String lname;
Person({this.fname, this.lname});
}
class Student extends Person {
String major;
String year;
Student({this.major, this.year, String fname, String lname})
: super(fname: fname, lname: lname);
Student.fromPerson(Person person, {this.major, this.year})
: super(fname: person.fname, lname: person.lname); // <- is there a better way
}
void main() {
Person person = Person(fname: "Lina", lname: "Dosse");
Student student = Student.fromPerson(person, major: 'CS', year: '2015');
}