gpt4 book ai didi

java - 从父类(super class)实例创建实例

转载 作者:太空狗 更新时间:2023-10-29 22:34:01 26 4
gpt4 key购买 nike

考虑以下情况:

class A {
int x;
int y;
}

class B extends A {
int z;
}

现在,在代码的某处,这些类的使用方式如下:

A objA = getAFromSomewhere();
B objB = null;

在某些情况下我想做类似的事情

objB = objA; // can't do this
objB.z = someZ;

当然真正的对象要复杂一些,所以不仅仅是复制两个int。但它们也不是太复杂。

我知道我可以像这样为 B 编写构造函数:

public B(A anA) {
this.a = anA.a;
this.b = anA.b;

this.z = 0;
}

但如果那真的是唯一的方法,我更愿意将 B 的其他成员合并到 A 中。

根据答案更新

我的问题不够清楚。我明白 objB = objA;无法工作(因此我要求“类似的东西”,意思是代码复杂性相当的东西)并且我知道浅拷贝和深拷贝的问题。
我正在寻找的是复制基类成员的可能性(假设使用 clone())。您可能理解手动复制每个成员是一个糟糕的解决方案,因为它增加了代码的复杂性和冗余。无论如何感谢您的回复!

最佳答案

没有简单的解决方案,因为没有万能的解决方案。基本上您没有 B 中的所有信息,因此您不能保证您会拥有一个“合理的”B 对象。

可能只想在B 中创建一个构造函数,它接受一个A 并复制所有A数据到新的 B

关于java - 从父类(super class)实例创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6924974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com