我有两个类(class),A类和B类。
class A {
String abcd;
String efgh;
}
class B extends A {
String check1;
String check2;
}
我在另一个类中有一个 B 类对象。我想从子类B中获取类A的单独对象。java中有没有特殊的方法来分离这两个类?请帮助我得到正确的答案。
最佳答案
I'm having one object of class B in one other class. I want to get a separate object of class A from the subclass B.
只有一个对象,而不是两个。
Is there any special methods in java for separating these two classes?
不,因为同样,只有一个对象。
通常有两种方法可以获取 B
实例的 A
方面:
仅创建对象的
A
方面的副本,通常使用A
中的复制构造函数。这将创建一个新的第二个对象,该对象复制特定于A
的实例的各个方面。如果A
没有合适的复制构造函数,则必须添加一个(如果可以修改A
)或创建自己的方法来执行此操作(如果可能,某些类有它们不公开的状态)。例如,这里是带有复制构造函数的
A
:class A { String abcd; String efgh; public A(A a) { this.abcd = a.abcd; this.efgh = a.efgh; } }
然后,如果您有一个
B
实例:B b = new B();
...您可以使用复制构造函数将其复制其
A
方面到第二个对象:A a = new A(b);
如果您只想引用类型为
A
而不是B
的现有对象,只需进行赋值即可:B b = new B(); A a = b;
仍然只有一个对象,并且它仍然是一个
B
对象,但是a
变量只提供对定义的属性和方法的访问对于A
。
我怀疑您可能需要复制构造函数,但我认为我应该提及另一个,以防您只是试图从部分代码中隐藏一些 B
功能(这不是不常见)。
关于java - 如何将父类(super class)对象与基类对象分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26274532/