java - 复制包含另一个对象的父类(super class)的对象

标签 java oop copy-constructor

我想创建一个对象的副本,其中包含另一个对象的父类(super class)。在这个例子中,我想制作一个包含 ToyBox 的副本。但是所有类型的玩具都可以放在盒子里。在 Toy 中创建复制构造函数的最佳方法是什么?

class Box {
    Toy toy;
    public Box(Toy toy) {
        this.toy = toy;
    }
    public Box(Box box) {
        this.toy = new Toy(box.getToy());
    }
}
abstract class Toy {
    public Toy(String name) {
        // ...
    }
}   
class Car extends Toy {
    public Car(String name) {
        super(name);
        // ...
    }
}
class Puppet extends Toy {
    public Puppet(String name) {
        super(name);
        // ...
    }
}

我真的不知道如何解决这个问题。

最佳答案

使Toy 有一个抽象方法copy(),返回类型为Toy。然后你将被迫在 CarPuppet 中覆盖它。在 Box 的复制构造函数中,您可以使用 box.getToy().copy()

关于java - 复制包含另一个对象的父类(super class)的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27640961/

相关文章:

java - Eclipse 类设计器和设计<--> java 源代码绑定(bind)

java - 如何通过超链接从 JSP 向 Servlet 发送对象?

javascript - 在对象类声明中设置 javascript 原型(prototype)函数

c++ - 为什么此代码在第 1 行显示错误左值?如何解决?

c++ - 动态分配对象数组

Java异常捕获后又自动抛出?

java - 打印通过 Spring PropertyPlaceholderConfigurer 设置的所有属性

php - 这个简单的 PHP 应用程序的最佳 OOP 方法?

c++ - 这是一个有效的 Copy Ctor 吗?

c++ - 强制复制构造函数而不是移动构造函数