gpt4 book ai didi

java - 类共享同一个父类(super class)实例

转载 作者:行者123 更新时间:2023-12-04 04:54:01 26 4
gpt4 key购买 nike

我有一个非常简单的问题。

2个类可以共享同一个父类(super class)实例吗?我知道答案是否定的,因为 super 是实例本身,但我真的有一些解决方法......

public class Parent{
private final int parentId;
private static final HashMap<Integer,Parent> parentMap = new HashMap<Integer,Parent>();

private Parent(int i){
parentId = i;
parentMap.put(i,this);
}

public static Parent newInstance(int i)
{
if(parentMap.containsKey(i))
return parentMap.get(i);

return new Parent(i);

}
}

/* 其他类 */
public class ExtendedParent extends Parent{
public ExtendedParent(int i){
super(i);//I should use the factory at this point...
}

public static main(String[] args){
/*What I am trying to achieve*/
Parent p1 = new ExtendedParent(1);
Parent p2 = new ExtendedParent(1);

if(p1.equals(p2))
System.out.println("This is what i aim to get!!!!");

}
}

重新编写代码以清楚地展示我的问题。

有人可以帮我吗? =D

提前致谢!

最佳答案

我看到两种选择:

  • 将相关父级的属性和方法设为静态,以便在所有子代之间共享。
  • 用接口(interface)替换父类,在子类实例之间共享原父类的属性。
  • 关于java - 类共享同一个父类(super class)实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042433/

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