【发布时间】:2014-11-25 19:10:02
【问题描述】:
如何基于超类对象创建子类对象?
例如:
class Super {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Sub extends Super {
private String lastName;
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Super sup = new Super();
sup.setId(1);
sup.setName("Super");
Sub sub = new Sub();
System.out.println(sub.getName());
}
}
如何创建具有之前创建的“超级”属性的“子”对象?
或者我应该手动传递属性,例如:
sub.setName(sup.getName());
sub.setId(sup.getId());
【问题讨论】:
-
您的用例是什么?为什么需要它?
-
@nrainer 我有
FirmwareVersion和SoftwareVersion扩展Version的类。用户可以将一个或多个版本添加到列表中。所以,我打电话给new Version()。当用户单击“保存”按钮时,他必须选择它是固件版本还是软件版本。然后我可以打电话给new FirmwareVersion()或new SoftwareVersion() -
好的。然后我假设不可能避免创建
Version的实例,是吗?我们是在谈论 Web 应用程序吗? -
是的,那时我不知道它会是什么类型的版本。所以,我必须创建一个通用版本。只有稍后,当用户选择时,我才能创建特定版本。这是一个桌面应用程序。第一次我创建了一个抽象版本,但显然,它必须是一个具体的类。有接口方法的解决方案吗?
-
为什么需要创建通用版?不能等到用户选择版本吗?
标签: java inheritance