经过一番搜索后,我没有找到有关复制构造函数和继承的问题的任何好的答案。
我有两个班级:用户和实习生。 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);
所以我的问题是:有没有更干净的方法来做到这一点?不能用超级吗?
预先感谢您的答复和帮助。