java - 复制构造函数和多态性

标签 java constructor copy-constructor

我有一个类,它有我想正确处理复制对象的子类。称为 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/

相关文章:

c++ - 代码中的疑问,测试赋值运算符的使用

java - 如何找出在 foo 循环中创建的 JRadioButton 的名称是什么

C++ - 防止全局实例化?

java - 如何使用数组列表的不同子类型重载构造函数?

c++ - 未调用复制构造函数(再次)

c++ - 在对象初始化中复制构造函数

java - 返回不需要的东西(对于编译器)

java - 使用支持库导出 Android 项目时出现 ProGuard 错误

java - Google App Engine 留言簿示例无法工作,无法连接到数据库

java - 构造函数未定义错误 - Java