经过一番搜索,我没有找到关于复制构造函数和继承的问题的任何好的答案。我有两个班级:用户和实习生。Trainee 继承自 User 并在 Trainee 中添加了两个 String 参数。现在我设法制作了 User 的复制构造函数,但我对 Trainee 的复制构造函数不满意。User 拷贝构造函数的代码是这样的:
public User (User clone) {
this(clone.getId(),
clone.getCivilite(),
clone.getNom(),
clone.getPrenom(),
clone.getEmail(),
clone.getLogin(),
clone.getTel(),
clone.getPortable(),
clone.getInscription(),
clone.getPw()
);
}
我尝试在我的 Trainee 复制构造函数中使用 super :
public Trainee (Trainee clone) {
super (clone);
this (clone.getOsia(), clone.getDateNaiss());
}
但它不起作用,我被迫编写完整版本的复制构造函数:
public Trainee (Trainee clone) {
this(clone.getId(),
clone.getCivilite(),
clone.getNom(),
clone.getPrenom(),
clone.getEmail(),
clone.getLogin(),
clone.getTel(),
clone.getPortable(),
clone.getInscription(),
clone.getPw(),
clone.getOsia(),
clone.getDateNaiss()
);
}
由于我的主要构造,我必须像这样转换我的新实例:
User train = new Trainee();
User train2 = new Trainee((Trainee) train);
所以我的问题是:有没有更清洁的方法来做到这一点?我不能用超级吗?
预先感谢您的回答和帮助。