我有一个类,它有我想正确处理复制对象的子类。称为 Item 的父类(super class)有一个复制构造函数,子类也有自己的复制构造函数。但是,我想知道的是如何使以下内容起作用。
Item
类(简化描述)
构造函数:
public Item(...) {
}
复制构造函数:
public Item( Item template ) {
}
- 在这方面,每个子类的基本布局相同,只是目前它们只是使用不同的构造函数创建一个新的 item 实例,该构造函数旨在根据存储在文本文件中的数据创建一个新对象(将数据从模板对象),然后填写模板对象中的其他字段。
子类是武器、盔甲、盾牌等。
我想做的是能够说:
Weapon weapon = new Item( weapon );
weapon 是 Weapon
并且调用了正确的复制构造函数(属于特定子类),返回类型为 Weapon
的新对象,而不是仅仅获取返回一个新的 Item
,其中只有属于武器的 Item
部分。执行此操作的最佳和/或正确方法是什么?
最佳答案
因为你的复制构造函数将只与子类交互,你应该在父类中为你的复制构造函数提供抽象方法,然后在子类中定义你的复制构造函数
关于java - 复制构造函数和多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22362302/